从对象数组中删除重复的对象

时间:2019-08-07 07:00:48

标签: arrays typescript

我有一个数组列表,我需要隐藏数组的重复项

   {
        "company_name": "SERVICE INDUSTRIES LTD.",
        "claim_id": "2017\/04\/LHRHHDP00015-2018-00702",         
    },
    {

        "company_name": "KARACHI CHAMBER OF COMMERCE & INDUSTRY",
        "claim_id": "2018\/03\/HOHHDP00013-2019-00098",

    },
    {
        "company_name": "PAKISTAN RED CRESCENT SOCIETY",
        "claim_id": "2017\/04\/LHRHHDP00015-2018-00702",

    },
    {
        "company_name": "SERVICE INDUSTRIES LTD.",
        "claim_id": "2018\/04\/LHRHHDP00022-2019-01292",     
    },
    {
        "company_name": "U MICROFINANCE BANK LTD",
        "claim_id": "2017\/04\/LHRHHDP00015-2018-00702",    
    }

这是示例数组,我需要隐藏具有重复的Claim_id的数组。

2 个答案:

答案 0 :(得分:1)

您可以使用filterfindIndex查找重复项。如果索引不等于当前项目,则存在重复项。

对性能的影响最大为数组大小的1.5倍:

const unique = data.filter((item, index) => 
  data.findIndex(({ claim_id }) => item.claim_id === claim_id) === index
);

答案 1 :(得分:0)

要轻松解决此问题,请使用以下策略:

  • 从数组中提取值到对象(用作字典)
  • 消除重复
  • 将值提取到新数组

所以......

const dic = {}

for (const item of originalArray) {
    dic[item.claim_id] = item
}

const groupedArray = Object.values(dic)

唯一的问题是...打字稿在哪里?我们使用本机JS并管理得很好:)