【发布时间】:2017-07-19 05:10:18
【问题描述】:
我有一个对象数组,我试图从中获取独特的元素。我尝试使用 Set 来获取独特的元素。它不适用于对象数组,但适用于字符串数组等。
如何使用 set 实现这一点?
let data =[{"name":"tagName2"},{"name":"tagName2"}];
console.log(data); //[ { name: 'tagName2' }, { name: 'tagName2' } ]
console.log((new Set(data))); //Set { { name: 'tagName2' }, { name: 'tagName2' } }
【问题讨论】:
-
这是两个不同的对象。对象只有在引用相同位置时才相等。
-
没有可以覆盖的接口来建立等效性 - 现在它是普通的旧 javascript。
-
易于检查:
({ name: 'tagName2' }) == ({ name: 'tagName2' })产生false。 -
定义数组外的对象并推送
-
@azad 数据实际上来自该格式的 API 请求
标签: javascript arrays duplicates set