比如根据a数组元素中的name属性去重
这是最简洁的方法了吗?
function unique(arr) {
const res = new Map();
return arr.filter((a) => !res.has(a.name) && res.set(a.name, 1))
}
比如根据a数组元素中的name属性去重
这是最简洁的方法了吗?
function unique(arr) {
const res = new Map();
return arr.filter((a) => !res.has(a.name) && res.set(a.name, 1))
}
就是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}]
10 回答10.4k 阅读
4 回答8.6k 阅读✓ 已解决
7 回答10.7k 阅读
2 回答11.3k 阅读✓ 已解决
6 回答2.5k 阅读
2 回答13.3k 阅读✓ 已解决
5 回答4.2k 阅读✓ 已解决
function unique(arr) {
}