Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
06 Июл 2023
2 мин
1686

Поиск объекта по идентификатору в массиве объектов JavaScript

Существует распространенная задача, которую решают программисты на JavaScript — поиск определенного объекта в массиве объектов по его идентификатору.

Существует распространенная задача, которую решают программисты на JavaScript — поиск определенного объекта в массиве объектов по его идентификатору. Возьмем, например, следующий массив объектов:

var myArray = [{'id':'123','name':'Alice'},{'id':'456','name':'Bob'},{'id':'789','name':'Charlie'}];

В этом массиве каждый объект имеет свойства id и name. Объекты в массиве могут быть в любом порядке, и идентификаторы могут быть любыми строками или числами. Задача — найти объект с определенным идентификатором и получить доступ к его свойствам.

В JavaScript есть несколько способов решения этой задачи.

Использование метода filter()

Один из способов это использование метода filter(), который доступен для всех массивов в JavaScript. Этот метод принимает функцию, которая вызывается для каждого элемента массива. Если функция возвращает true, элемент остается в возвращаемом массиве.

var idToLookFor = "456";
var foundObject = myArray.filter(function(item) {
  return item.id === idToLookFor;
})[0];
console.log(foundObject.name); // выведет "Bob"

Здесь функция фильтрации проверяет, равен ли идентификатор каждого объекта строке «456». После этого из полученного массива выбирается первый элемент.

Использование метода find()

Альтернативный способ — это использование метода find(). Этот метод также принимает функцию, которая вызывается для каждого элемента массива. Однако, в отличие от filter(), find() возвращает первый элемент, для которого функция возвращает true.

var idToLookFor = "456";
var foundObject = myArray.find(function(item) {
  return item.id === idToLookFor;
});
console.log(foundObject.name); // выведет "Bob"

Этот код делает то же самое, что и предыдущий пример, но возвращает объект напрямую, а не в массиве.

Оба этих метода полезны, когда необходимо найти объект в массиве по определенному критерию. Выбор между filter() и find() зависит от того, нужно ли получить все подходящие элементы или только первый.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий