const arr = [1, 2, 5, 6, 8, 2, 1, 3, 568, 9, 78, 1, 2, 6, 6, 9, 8, 4, 5];
//new Set key 唯一性
console.log(Array.from(new Set(arr)));
console.log([... new Set(arr)]);
//for of Object
function distinct(a = [], b = []) {
let arr = a.concat(b);
let result = [];
let obj = {};
for (let i of arr) {
if (!obj[i]) {
result.push(i);
obj[i] = 1;
}
}
return result
}
console.log(distinct([12, 12, 1], [12, 5]));
//MAp + filter
const seen = new Map();
const result = arr.filter((a) => !seen.has(a) && seen.set(a, 1));
console.log(result);
// filter + indexOf
const result3 = arr.filter((item,index,arr) => arr.indexOf(item) === index);
console.log(result3);
//数组对象去重
const arr2 = [{
key: '1',
value: '111'
}, {
key: '2',
value: '222'
}, {
key: '3',
value: '333'
},{
key: '4',
value: '444'
},{
key: '1',
value: '112'
}];
//for of Object
function distinctObj(arr,key) {
let result = [];
let obj = {};
for (let i of arr) {
if (!obj[i[key]]) {
result.push(i);
obj[i[key]] = 1;
}
}
return result
}
console.log(distinctObj(arr2,'key'));
//MAp + filter
const seen2 = new Map();
const result2 = arr2.filter((a) => !seen2.has(a['key']) && seen2.set(a['key'], 1));
console.log(result2);
js快速写一个 数组去重或数组对象去重
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 定义 JSON是一种数据格式(对象和数组互相嵌套)JSON(JavaScript Object Notation)...