例如:var arr = [{ a: 1 }, { a: 2 }, { a: 2 }, { a: 1 }, { a: 3 }];
要求输出 [{a:1},{a:2}]
//方法一
var arr = [{ a: 1 }, { a: 2 }, { a: 2 }, { a: 1 }, { a: 3 }];
var result1 = [];
var obj = {};
for (var i = 0; i < arr.length; i++) {
if (!obj[arr[i].a]) {
obj[arr[i].a] = true;
} else {
result1.push(arr[i]);
}
}
console.log("result ---- 1", result1);
//方法二
var arr = [{ a: 1 }, { a: 2 }, { a: 2 }, { a: 1 }, { a: 3 }];
const res = new Map();
let result2 = [];
arr.filter(item => {
res.has(item.a) ? result2.push(item) : res.set(item.a, 1);
});
console.log("result ---- 2", result2);
//方法三
var arr = [{ a: 1 }, { a: 2 }, { a: 2 }, { a: 1 }, { a: 3 }];
const map = new Map();
let result3 = new Set();
arr.filter(item => {
map.has(item.a) ? result3.add(item) : map.set(item.a, 1);
});
console.log("result ---- 3", [...result3]);