数组中对象去重
var oldArr = [{
id: 1,
name: "zhangs",
age: 18,
contact_id: 1
},
{
id: 1,
name: "zhangs",
age: 18,
contact_id: 2
},
{
id: 1,
name: "zhangs",
age: 18,
contact_id: 3
},
{
id: 1,
name: "zhangs",
age: 18,
contact_id: 14
},
{
id: 1,
name: "zhangs",
age: 18,
contact_id: 3
},
{
id: 1,
name: "zhangs",
age: 18,
contact_id: 2
},
{
id: 1,
name: "zhangs",
age: 18,
contact_id: 1
}
];
方式1 jq方式
var allArr = [];
$.each(oldArr, function (i, v) {
var flag = false;//假设不存在同名对象
if (allArr.length > 0) {
$.each(allArr, function (n, m) {
if (allArr[n].contact_id == oldArr[i].contact_id) {
flag = true;
};
});
};
if (!flag) {
allArr.push(oldArr[i]);
};
});
方式2 原生js方式
for(var i=0;i<oldArr.length;i++){
var flag = false;//假设不存在重复的
for(var j=0;j<allArr.length;j++){
if(oldArr[i].id == allArr[j].id){
flag = true;
};
};
//如果不存在的时候把他添加到新数组中
if(!flag){
allArr.push(oldArr[i]);
};
};
console.log(allArr);
普通数组的去重
var repeatArr = [1,3,2,5,3,5,8,7,4,8];
方式1 普通的数组去重js
var noReapeat = [];
for(let i in repeatArr){
var isExit = false;
for(let j in noReapeat){
if(noReapeat[j] == repeatArr[i]){
isExit = true;
}
}
if(!isExit){
noReapeat.push(repeatArr[i]);
}
}
console.log(noReapeat);
方式2 Set 去重
var noRepeat = Array.from(new Set(repeatArr));
console.log(noRepeat);
方式3 ...扩展运算符
var noRepeat = [...new Set(repeatArr)];
console.log(noRepeat);
网友评论