如何从对象数组中删除重复项

34 浏览
0 Comments

如何从对象数组中删除重复项

这个问题已经有了答案

针对对象的map函数(而非数组)

我试图从对象中删除存在的数组列表中的重复项,对象看起来像下面这样,例如,我只使用了两个数组,但实际上我正在查看的数组有很多

{
    "NAME":[
        "LORD",
        "OF",
        "RINGS",
        "LORD"
    ],
    "ADRESS":[
        "INDIA",
        "INDIA",
        "TEXAS",
        "SRILANKA"
    ]
}

期望输出:

{
    "NAME":[
        "LORD",
        "OF",
        "RINGS"
    ],
    "ADRESS":[
        "INDIA",
        "TEXAS",
        "SRILANKA"
    ]
}

目前我能够从对象中提取一个单一的数组并能够使用“SET”去除重复项,下面是我的代码

console.log("without duplicates", [... new Set(r.NAME)]);

由于它是一个对象,我确定我不能在它上面循环。怎样才能实现期望的输出,谢谢

admin 更改状态以发布 2023年5月24日
0
0 Comments
    const obj = {
      NAME: ["LORD", "OF", "RINGS", "LORD"],
      ADDRESS: ["INDIA", "INDIA", "TEXAS", "SRILANKA"]
    };
//get array of keys
const keys = Object.keys(obj);
//then map to transform the object array
const sets = keys.map(key => new Set(obj[key]));
//set back to array
keys.forEach((key, i) => {
  obj[key] = [...sets[i]];
});
console.log(obj);

这句话中的内容为123。

0
0 Comments

您可以遍历对象的键,然后使用 Set 来删除重复项,如下所示:

    function removeDuplicates(obj): any {
        for (const key of Object.keys(obj)) {
            obj[key] = [...new Set(obj[key])];
        }
        return obj;
    }

0