试图从具有键值对的数组中删除重复项

时间:2020-02-06 21:58:54

标签: javascript arrays reactjs

我有重复的值,如下图所示

enter image description here

我使用了下面的代码,但是它只给出了ashare1 guideline2之类的名称,我也在寻找id。

请找到我目前使用的以下代码

const optionMap0 = [
...new Set(libraryEquipment.map(e => e.equipmentSource.name)),
{
  id: '1d037be564c548eebe71db4e45e26cf7',
  name: 'None',
},
];

请问有人建议如何从上述对象数组中获得不同的值。

非常感谢

1 个答案:

答案 0 :(得分:1)

您可以将其转换为对象,以键作为名称,值作为对象本身,然后使用Object.values()来获取对象。

const obj = {};
libraryEquipment.forEach(e => obj[e.equipmentSource.name] = e.equipmentSource);
const optionMap0 = Object.values(obj);

与set不同,如果您有多个同名对象,它将保留最后一个。您可以在添加对象之前进行检查,以便它将使用具有相同名称的第一个对象,如下所示:

const obj = {};
libraryEquipment.forEach(e => { 
    if (!obj[e.equipmentSource.name]) 
        obj[e.equipmentSource.name] = e.equipmentSource'
});
const optionMap0 = Object.values(obj);
相关问题