【问题标题】:looking to remove duplicates from an array with key value pair希望从具有键值对的数组中删除重复项
【发布时间】:2020-02-06 21:58:54
【问题描述】:

我有重复的值如下图所示

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

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

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

任何人都可以就如何从上述对象数组中获取不同的值提出任何想法。

提前多谢

【问题讨论】:

    标签: javascript arrays reactjs


    【解决方案1】:

    可以将其转换为对象,以key为名称,value为对象本身,然后使用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);
    

    【讨论】:

    • 感谢您的建议,我不想保留任何选项作为 { id: '1d037be564c548eebe71db4e45e26cf7', name: 'None', },
    • 就像你一样 - const optionMap0 = {...Object.values(obj), { id: '1d037be564c548eebe71db4e45e26cf7', name: 'None' }};
    猜你喜欢
    • 2012-12-12
    • 1970-01-01
    • 2021-10-26
    • 2017-08-11
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    相关资源
    最近更新 更多