/**
* 数组去重方法:
* 1、for循环遍历方法
* 2、filter+hashMap
* 3、filter+indexOf方法
* 4、for+sort方法
*/
/*
* for循环
* 遍历数组,和新数组的每一项对比,有不同就push
*/
function unique1(arr) {
var newArr = [], isRepeated;
for( var i = 0, iLen = arr.length; i < iLen; i++) {
isRepeated = false;
for(var j = 0, jLen = newArr.length; j < jLen; j++) {
if(arr[i] == newArr[j]) {
isRepeated = true;
break;
}
}
!isRepeated && newArr.push(arr[i]);
}
return newArr;
}
/*
* filter+hashMap
* hash下标
*/
function unique2(arr) {
var hashMap = {};
return [].filter.call(arr, function (item) {
if(!hashMap[item]) {
hashMap[item] = 1;
return true
}
});
}
/*
* filter + indexOf
* indexOf 返回第一个匹配元素的索引值
*/
function unique3(arr) {
return [].filter.call(arr, function (item, index) {
return arr.indexOf(item) === index;
});
}
/*
* for + sort
* 先sort对数组进行排序,然后相邻的对比,不同就push
*/
function unique4(arr) {
arr.sort(); // 数组排序
var newArr = [arr[0]];
for(var i = 1, len = arr.length; i < len; i++) {
// 相邻的对比(即新数组的最后一个元素与当前遍历元素对比),不相等就加入新数组
if(arr[i] !== newArr[newArr.length-1]) newArr.push(arr[i]);
}
return newArr;
}
[null干货]数组去重方法4种方法
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...