Удалить дубликаты из внутренних массивов в JavaScript-объекте - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть массив объектов ... (на самом деле я не уверен, что у меня есть, но это выглядит так)

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 голосов
/ 15 ноября 2018

С 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, Наконец, просто распространите результирующий массив, чтобы получить желаемый результат объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...