第一种方式:
mounted() {
var arr = [{name: 'a',id: 1}, {name: 'a',id: 2}, {name: 'b',id: 3}, {name: 'c',id: 4}];
var newArr = this.deWeight(arr);
console.log(newArr,888)
},
methods:{
deWeight(arr) {
for (var i = 0; i < arr.length - 1; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i].name == arr[j].name) {
arr.splice(j, 1);
//因为数组长度减小1,所以直接 j++ 会漏掉一个元素,所以要 j--
j--;
}
}
}
return arr;
}
最后得到的newArr = [{name: ‘a’,id: 1}, {name: ‘b’,id: 3}, {name: ‘c’,id: 4}]
第二种方式:
mounted() {
var arr2 = [{name: 'a',id: 1}, {name: 'a',id: 2}, {name: 'b',id: 3}, {name: 'c',id: 4}];
var temp = [];
var newArr2 = this.deWeightTwo(arr2,temp);
console.log(newArr2)
},
methods:{
deWeightTwo(arr2,temp){
arr2.forEach(function(a) {
var check = temp.every(function(b) {
return a.name !== b.name;
})
check ? temp.push(a) : ''
})
return temp;
},
}
最后得到的newArr2 = [{name: ‘a’,id: 1}, {name: ‘b’,id: 3}, {name: ‘c’,id: 4}]
第三种方式:
mounted() {
var arr3 = [{name: 'a',id: 1}, {name: 'a',id: 2}, {name: 'b',id: 3}, {name: 'c',id: 4}];
let deWeightThree = () => {
let map = new Map();
for (let item of arr3) {
if (!map.has(item.name)) {
map.set(item.name, item);
}
}
return [...map.values()];
}
let newArr3 = deWeightThree();
console.log(newArr3,88)
},
最后得到的newArr3 = [{name: ‘a’,id: 1}, {name: ‘b’,id: 3}, {name: ‘c’,id: 4}]
第4种方式
mounted() {
var arr4 = [{name: 'a',id: 1}, {name: 'a',id: 2}, {name: 'b',id: 3}, {name: 'c',id: 4}];
var obj = {};
var newArr4 = this.deWeightFour(arr4,obj);
console.log(newArr4)
},
methods:{
deWeightFour(arr4,obj) {
arr4 = arr4.reduce(function(a, b) {
obj[b.name] ? '' : obj[b.name] = true && a.push(b);
return a;
}, [])
return arr4;
},
}
最后得到的newArr4 = [{name: ‘a’,id: 1}, {name: ‘b’,id: 3}, {name: ‘c’,id: 4}]
第5种方式:
mounted() {
var arr4 = [{name: 'a',id: 1}, {name: 'a',id: 2}, {name: 'b',id: 3}, {name: 'c',id: 4}];
//利用对象访问属性的方法,判断对象中是否存在key
let newArr = [];
let obj = {};
for (var i = 0; i < arr4.length; i++) {
if (!obj[arr4[i].name]) {
newArr.push(arr4[i]);
obj[arr4[i].name] = true;
}
}
console.log(newArr,8889);
},
最后得到的newArr = [{name: ‘a’,id: 1}, {name: ‘b’,id: 3}, {name: ‘c’,id: 4}]