js 数组根据对象的属性值去重
可以使用ES6的Set和Array.from方法来实现数组根据对象的属性值去重。
假设有一个数组arr,数组中的每个元素都是一个对象,对象有一个属性名为property,我们要根据property的值去重。
const arr = [
{ property: 'a' },
{ property: 'b' },
{ property: 'c' },
{ property: 'a' },
{ property: 'b' },
];
const uniqueArr = Array.from(new Set(arr.map(obj => obj.property)))
.map(property => arr.find(obj => obj.property === property));
console.log(uniqueArr);
输出结果为:
[
{ property: 'a' },
{ property: 'b' },
{ property: 'c' },
]
首先,我们使用arr.map(obj => obj.property)将数组中每个对象的property属性值提取出来,得到一个新的数组。然后,我们使用Set来去除重复的属性值。接下来,我们使用Array.from方法将Set转换为数组。最后,我们使用map方法遍历这个数组,通过arr.find(obj => obj.property === property)来找到原数组中对应属性值的对象,并返回一个新的数组uniqueArr
原文地址: http://www.cveoy.top/t/topic/iX2Q 著作权归作者所有。请勿转载和采集!