数组去重中
老规矩废话不多说,直接上代码!
第一种方法
//封装去重的方法
filterArrObj(arr,filterField){
let newArr = arr.reduce((pre,cur) => pre.some(item => item[filterField] == cur[filterField]) ?
pre : [...pre,cur],[])
return newArr
},
//使用方法 根据数组中的name字段去重
let newArr = this.filterArrObj(list,'name')
var arr = [2,4,7,2,2,54,82,2,15,1,5,7]
for(var i = 0;i<arr.length;i++){
for(var j=0;j<arr.length+1;j++){
if(arr[i] == arr[j]){
arr.splice(j,1)
}
}
}
console.log('arr',arr);
// [4, 2, 82, 1, 7]
var arr1 = [
{
name:'张三',
age:'28'
},
{
name: '李四',
age: '18'
},
{
name: '张三',
age: '28'
}
]
arr1.reduce(function (tempArr, item) {
if (tempArr.findIndex((ele) => ele.name === item.name && ele.age == item.age) === -1) {
tempArr.push(item)
console.log('tempArr', tempArr);
}
return tempArr
}, [])
arr1 = tempArr
console.log(arr1)
//[{name:'张三',age:'28'},{name:'李四',age:'18'}]
希望能够帮助你!