比如根据a数组元素中的name属性去重这是最简洁的方法了吗?function unique(arr) { const res = new Map(); return arr.filter((a) => !res.has(a.name) && res.set(a.name, 1))}引用: https://segmentfault.com/q/10...
3 回答
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
就是Set对象里的每一个数据地址不同,即为不同的对象!
对象类型的数组,如定义:[{a:1,b:2},{a:1,b:3},{a:1,b:2}] 过滤之后还是三个对象;
但是 如果你是 let obj = {a:1,b:2}; arr.push(obj);这样放进去 最终会被过滤掉冗余的,只剩一个
const arrayUniq = (x) => [...new Set(x)];
let arr1 = [{a:1,b:2},{a:1,b:3},{a:1,b:2}];
let arr2 = [{a:1,b:3}];
let obj = {a:1,b:2};
arr2.push(obj);
arr2.push(obj);
arrayUniq(arr1);
//[{a:1,b:2},{a:1,b:3},{a:1,b:2}]
arrayUniq (arr2);
//[{a:1,b:2},{a:1,b:3}]
添加回答
举报
0/150
提交
取消
