当数组的对象为元素,或者我们想区分数字1和字符串‘1’的时候,一般的去重方法就有了一定的局限性。
function remove(data) {
let obj = {};
return data.filter(item => {
item = JSON.stringify(item);
let match = Boolean(obj[item]);
return match ? false : obj[item] = true;
})
};
console.log(remove([{a: 1},{a: 1},[1, 2], [1, 2],1,'1']));
// 输出结果:[ {a: 1}, [1, 2] ,1,'1']