Как найти объект в массиве JavaScript по указанному значению

Поиск объекта в массиве по значению свойства

У меня есть массив объектов:

myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, ...]

Я не могу изменить структуру массива. Когда у меня есть id, равный 45, я хочу получить значение 'bar' для этого объекта в массиве.

Как это можно сделать на JavaScript или с использованием jQuery? Буду признателен за примеры и разъяснения.

я обычно использую forEach - просто и работает везде:

let targetValue;
myArray.forEach(obj => {
  if(obj.id === '45') {
    targetValue = obj.foo;
  }
});

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

Попробуй метод find. Например: const result = myArray.find(item => item.id === '45'); return result ? result.foo : undefined;. Гораздо проще и читается лучше. Подойдет для твоей задачи?

Можно через filter + деструктуризацию: const {foo} = myArray.filter(obj => obj.id === '45')[0] || {}; Только учти - если объект не найдется, foo будет undefined. Или обычный for loop, если скорость важна - он быстрее find/filter.