#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 из этого вопроса.