Mientras que la mayoría de las respuestas existentes son geniales, me gustaría incluir una respuesta usando un bucle for tradicional, que también debería considerarse aquí. El OP solicita una respuesta que es compatible con ES5 / ES6, y se aplica el bucle for tradicional :)
El problema con el uso de funciones de matriz en este escenario es que no mutan objetos, pero en este caso, la mutación es un requisito. La ganancia de rendimiento del uso de un bucle for tradicional es solo una bonificación (enorme).
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;
}
}
Aunque soy un gran admirador de las funciones de matriz, no permita que sean la única herramienta en su caja de herramientas. Si el propósito es mutar la matriz, no son la mejor opción.
item
contiene unaid
clave? ¿O le importaría tener la identificación y todas las propiedades delitem
objeto en la entrada de la matriz?