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

Поиск объекта по его идентификатору в массиве JavaScript может быть обычной задачей при работе с данными в вашем приложении. Есть несколько способов сделать это, и в этой статье мы рассмотрим три самых популярных из них.

Метод Array.prototype.find()

Этот метод выполняет итерацию по массиву и возвращает первый элемент, который удовлетворяет предоставленной функции тестирования. Например, если у вас есть массив таких объектов:

const users = [
{id: 1, name: 'John'},
{id: 2, name: 'Jane'},
{id: 3, name: 'Bob'}
];
// Вы можете использовать этот find()метод для поиска объекта с определенным идентификатором, например:
const user = users.find(user => user.id === 2);
console.log(user); // {id: 2, name: 'Jane'}
alert(JSON.stringify(user)); // {"id":2,"name":"Jane"}

Метод Array.prototype.filter()

Этот метод создает новый массив со всеми элементами, прошедшими проверку, реализованную предоставленной функцией. Например, вы можете использовать filter()для поиска объекта с определенным идентификатором, как это:

const users = [
{id: 1, name: 'John'},
{id: 2, name: 'Jane'},
{id: 3, name: 'Bob'}
];
const user = users.filter(user => user.id === 2)[0];
console.log(user); // {id: 2, name: 'Jane'}
alert(JSON.stringify(user)); // {"id":2,"name":"Jane"}

Метод Array.prototype.forEach()

Этот метод перебирает массив и применяет предоставленную функцию для каждого элемента. Например, вы можете использовать forEach()для поиска объекта с определенным идентификатором, как это:

const users = [
{id: 1, name: 'John'},
{id: 2, name: 'Jane'},
{id: 3, name: 'Bob'}
];
let user;
users.forEach(function(item) {
if (item.id === 2) {
user = item;
}
});
console.log(user); // {id: 2, name: 'Jane'}
alert(JSON.stringify(user)); // {"id":2,"name":"Jane"}

Если мы хотим вывести содержимое объекта в диалоговом окне с помощью функции "alert()", необходимо преобразовать объект в строку с помощью функции "JSON.stringify()", которая сериализует объект в формат JSON. Если не использовать эту функцию, то метод "alert()" выведет только тип данных объекта, что в данном случае будет строка "[object Object]".

Обсуждение закрыто.