我有对象数组以这种形式:对象的ECMAScript 6(ES6)的集
[
{id : #mixed char and num , title : #string },
{id : #mixed char and num , title : #string } ...]
我想来遍历它并删除重复的对象中,我使用设置结构这样做,但问题是,设置运营方将接受复制的对象 我试图
let Unique = new Set([], X => x.id)
但不会帮助
3 回答
您可以删除所有的重复与.filter
let uniqueArr = arr.filter((item, index) => {
return arr.findIndex(item2 => item2.id === item.id) === index;
});
小提琴demoing概念:https://jsfiddle.net/4oanw972/
由于the reference状态,
设定的对象,您可以存储任何类型的唯一值,无论是原始值或对象引用。
如果这些是不同的对象引用,它们将不会被重复数据删除。如果对象需要通过id
唯一密钥进行标识,那么Set
是错误的选择。一个地图可以达到这个目的:
new Map([
[#mixed char and num, {id : #mixed char and num , title : #string }],
...
])
如果对象不包含任何东西,但id
和title
,地图可以简化为:
new Map([
[#mixed char and num, #string],
...
])