Как создать уникальный набор данных литерала объекта json в Javascript?

#javascript #arrays #json

Вопрос:

Я хочу получить вывод в виде уникального массива категорий со следующим выводом [Мужчины,женщины]. Есть ли какой-нибудь способ сделать это в Javascript?

Например, это мои данные

 {  "products:"[  {  "id": 1,  "categories": {  "1": "Men",  },  },  {  "id": 2,  "categories": {  "1": "Men",  },  }, {  "id": 3,  "categories": {  "1": "Woman",  },  }  ]; }   

Ответ №1:

Простым ответом в 1 строку было бы

 new Set(input.products.map(p =gt; p.categories["1"]))  

Это если вы ожидаете только ключ «1» в объекте категорий.

Если у него может быть несколько категорий, вы всегда можете это сделать

 const uniqueCategories = new Set();  input.products.forEach(p =gt; uniqueCategories.add(...Object.values(p.categories)))  

Теперь вы можете преобразовать набор в массив

PS: Это не проблема ReactJS, а чистый вопрос JS. Возможно, вы захотите полностью удалить тег ReactJS из этого вопроса.