Хотя большинство существующих ответов прекрасны, я хотел бы включить ответ с использованием традиционного цикла for, который также следует здесь рассмотреть. OP запрашивает ответ, совместимый с ES5 / ES6, и применяется традиционный цикл for :)
Проблема с использованием функций массива в этом сценарии заключается в том, что они не изменяют объекты, но в этом случае изменение является обязательным. Прирост производительности от использования традиционного цикла for - это просто (огромный) бонус.
const findThis = 2;
const items = [{id:1, ...}, {id:2, ...}, {id:3, ...}];
for (let i = 0, l = items.length; i < l; ++i) {
if (items[i].id === findThis) {
items[i].iAmChanged = true;
break;
}
}
Хотя я большой поклонник функций массива, не позволяйте им быть единственным инструментом в вашем наборе инструментов. Если целью является изменение массива, они не подходят.
item
содержитid
ключ? или вы не против иметь идентификатор, а также все свойстваitem
объекта в записи массива?