Отобразить массив объектов и отфильтровать массив по свойству - PullRequest
0 голосов
/ 03 июня 2019

У меня есть вопрос, каков наилучший способ фильтрации объекта, который имеет массив объектов, и я хотел бы вернуть объект, который имеет соответствующее свойство

const test = Object.keys(repo).map((keyName, i) => {
   if(repo[keyName].name === post_name) {
     console.log(repo[keyName])
   } 
})

код выше работает, но я чувствуюкак не лучший способ достичь этого, может быть, у кого-то есть лучший способ решить эту проблему.

1 Ответ

2 голосов
/ 03 июня 2019

Если вы хотите отфильтровать существующий массив и создать новый массив, вы должны использовать .filter.Используйте .map только при создании другого массива из каждого элемента существующего массива - не используйте его для побочных эффектов.

Вы можете использовать Object.values вместо Object.keys, так как он выглядиткак вы заботитесь только о значениях:

const test = Object.values(repo).filter(({ name }) => name === post_name);

Тогда у вас будет массив объектов с совпадающими name.

Если вы знаете, что будет только одинсоответствующий объект, используйте .find вместо:

const match = Object.values(repo).find(({ name }) => name === post_name);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...