@campus1

Как можно упростить алгоритм фильтрации данных?

Всем привет. Така ситуация:
Есть массив ключей
["key1", "key2"]

Есть массив объектов
[{name: "Hey", key: "key1"}, {name: "Hello", key: "key2"}, {name: "Toster", key: "toster"}, {name: "Stack", key: "Stack"}]


Надо вернуть только объэкты у которых ключи равны массиву ключей. То есть:
[{name: "Hey", key: "key1"}, {name: "Hello", key: "key2"}]


Я сделал так:
getObjByKey = (objKey) => {
    const {data} = this.state; // array of objects

    if(!isEmpty(data)){

      let newArr = [];

      objKey.forEach((key) => {
        data.filter((element) => {
          if(element.key === key){
            newArr.push(element);
          }
        });

      });
      return newArr;
    }
    return;
  }


Но мне кажется, что есть решение более гибкое.
  • Вопрос задан
  • 228 просмотров
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
const result = arr.filter(el => keys.includes(el.key));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы