jquery与js数组去除重复元素的最优方法

发布时间:2020-05-01编辑:脚本学堂
本文介绍了jquery与js实现数组去除重复元素的方法,js数组去重方法的比较,js中同类型的数组去重复的方法,把数组中重复的元素去掉。

一、js与jquery数组去除重复元素

1、jquery数组去重
 

复制代码 代码示例:
var arr = ["1","2","3","4","5","4","3"];
var uniqueArr = [];
$.each(arr, function(i, el){
if($.inArray(el, uniqueArr) === -1) uniqueArr.push(el);
});

2、纯js数组去除重复
先排序,然后遍历此Array, 比较前后两个元素的值.

代码:
 

var arr = [9, 9, 111, 2, 3, 4, 4, 5, 7];
var sortedArr = arr.sort();
var results = [];
for (var i = 0; i < arr.length - 1; i++) {
if (sortedArr[i + 1] == sortedArr[i]) {
results.push(sortedArr[i]);
}
}

alert(results);

二、js数组去重比较

数组去重复:同类型的数组去重复。

1、for循环删除后面重复的。
 

var uniqueFor = function(arr) {
for (var i = 0; i < arr.length - 1; i++) {
var item = arr[i];
for(var j = i+1; j < arr.length; j++ ) {
item === arr[j] && (arr.splice(j, 1), j--);
}
};
return arr;
};

2、判断对象属性。
 

var uniqueObject = function(arr) {
var v, r = [], o = {};
for(var i = 0; (v = arr[i]) !== undefined; i++) {
!o[v] && (r.push(v), o[v] = true);
}
return r;
};

3、数组过滤重复项filter。
 

var uniqueFilter = function(arr) {
return arr.filter(function(elem, pos, self) {
// 如果没有重复项,返回true
return self.indexOf(elem, pos + 1) === -1;
});
};

三、js数组去重

js数组去重:把数组中重复的元素去掉。

复制代码 代码示例:
Array.prototype.delRepeat=function(){
var newArray=new Array();
var len=this.length;
for (var i=0;i for(var j=i+1;j if(this[i]===this[j]){
j=++i;
}
}
newArray.push(this[i]);
}
return newArray;
}