@depstor

Как получить объект из массива по значению определённого свойства?

Как из массива объектов получить объект по совпадению id?

[{id:1, name: test},
{id:2, name: test2},
{id:3, name: test3}]

Приходит id1, как мне получить весь массив с этим id, id динамический параметр?
  • Вопрос задан
  • 994 просмотра
Решения вопроса 3
@karminski
Senior React.JS Developer
const obj = [{id:1, name: test},
{id:2, name: test2},
{id:3, name: test3}];

console.log(obj.find(item => item.id === 1));
Ответ написан
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
К реакту Ваш вопрос не имеет отношения.
Array.prototype.find

[{id:1, name: test},
{id:2, name: test2},
{id:3, name: test3}].find(item => item.id === 2) // {id:2, name: test2}
Ответ написан
Tim-A-2020
@Tim-A-2020
Если id уникальный то метод [].find подойдет, он возвращает первый найденный объект. Если id могут быть одинаковые и их несколько, то вам нужен [].filter
пример:
//find
[
{id:1, name: 'test'},
{id:2, name: 'test2'},
{id:1, name: 'test3'}
].find(item => item.id === 1) // {id:1, name: test}

//filter
[
{id:1, name: 'test'},
{id:2, name: 'test2'},
{id:1, name: 'test3'}
].filter(item => item.id === 1)
/*
вернет массив
[
{id:1, name: 'test'},
{id:1, name: 'test3'}
]
*/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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