从对象javascript中的数组内部删除重复项

时间:2018-11-14 21:28:36

标签: arrays duplicates javascript-objects

我有一系列对象...(实际上我不确定我有什么,但是看起来像这样)

list = 

{
"ZIG": [
    "CSK",
    "DKR",
    "CSK",
    "YNA",
    "CSK"
],
"ZKG": [
    "YNA"
],
"ZND": [
    "NIM",
    "DKR",
    "AJY"
],
"ZNE": [
    "PHE",
    "PER"
]
}

我正在寻找一种方法来结束

list = 

{
"ZIG": [
    "DKR",
    "YNA",
    "CSK"
],
"ZKG": [
    "YNA"
],
"ZND": [
    "NIM",
    "DKR",
    "AJY"
],
"ZNE": [
    "PHE",
    "PER"
]
}

我可以使用uniq删除大部分重复项,但是仍然有一些重复项

1 个答案:

答案 0 :(得分:1)

使用 ES6 ,您可以执行以下操作:

const list = { "ZIG": [ "CSK", "DKR", "CSK", "YNA", "CSK" ], "ZKG": [ "YNA" ], "ZND": [ "NIM", "DKR", "AJY" ], "ZNE": [ "PHE", "PER" ] }

const r = Object.entries(list).map(([k,v]) => ({[k]: Array.from(new Set(v))}))

console.log(...r)

在每个对象中(通过Object.entries)获得对象的条目map,然后使用新的Set组合新的值。最后,仅spread个结果数组即可获得所需的对象结果。