извлечение уникальных ключей на основе значений в reactjs

#javascript

#javascript

Вопрос:

У меня есть следующий объект:

 {
  "Size": {
    "L": [
      "Men clothing",
      "Women clothing",
      "Toys"
    ],
    "M": [
      "Women clothing"
    ]
  }
}
  

Я пытаюсь создать функцию, которая возвращает ключи размера, содержащие данную категорию.

Например, когда я передаю Men clothing , мне нужно ожидать, что функция вернется ["L"] . Я передаю Men clothing и Women clothing , мне нужно, чтобы результат был ["L", "M"] .

Комментарии:

1. Похоже, что a Size является объектом вместо массива, вы можете Object.keys(Size), чтобы получить массив всех ключей [L,M], а затем проверить значения

Ответ №1:

Существует несколько способов получения ключей, содержащих заданную строку. Это один из них:

 const collection = {
  "Size": {
    "L": [
      "Men clothing",
      "Women clothing",
      "Toys"
    ],
    "M": [
      "Women clothing"
    ]
  }
}

function getSizes(obj, categories) {
  return Object.keys(obj).filter(key => {
    return categories.some(category => obj[key].includes(category));
  });
}

console.log(getSizes(collection.Size, ['Men clothing']));
console.log(getSizes(collection.Size, ['Men clothing', 'Women clothing']));