几种js中数组去重的办法
一、
//数组去重的公共方法
Array.prototype.clearRepeat = function (property) {var res = [];var json = {};
$.each(this, function (i, item) {
//this 表示当前待处理数据,this可能是一个集合或是一个单独字段if (!json[this.property]) {
res.push(this);
json[this.property] = 1;
}
});return res;
};
//其中property代表对象的属性值this可以是集合,map,或者单独字段都可以。比较是恶和一般 的json格式数据,不能用于复杂的结构
二、fiter去重
function arrayfilter(arr) {
arr= arr.filter(function (element, index, array) {
return array.indexOf(element) === index;//true则去掉,false返回
});
return arr;
}
同时利用filter也可以找出两个id相同名字不同的人的新数组,用这个来查找数据中录入错误就很方便。
例如:function arrayfilter(arr) {
var sameArr=[];
arr= arr.filter(function (element, index, array) {
if(array.indexOf(element) === index){
sameArr.push(arr[index]);
}//true则去掉,false返回
return (element) === index;
});
return sameArr;
}
相同的第一次加入新的数组,然后被删掉;得到相同部分。利用这个可以得到两个数组中相同部分。
先进行拼接
function arrayfilter(arr,arr1) { var sameArr=[];
arr=arr.concat(arr1);
arr= arr.filter( function (element, index, array) { if(array.indexOf(element) === index){
sameArr.push(arr[index]);
}//true则去掉,false返回 return (element) === index;
}); return sameArr;
}
三、ES6中新加入的set数据类型
Array