No estoy seguro de si esto es posible, ya que no creo que .filter se pueda usar para algo como esto. Si tengo una matriz así:
abc: [ {number: 1, letter: "a"}, {number: 2, letter: "b"}, {number: 3, letter: "c"}, {number: 4, letter: "d"}, ]quiero hacer algo como esto
abc.filter(item => { if(item.number == 1){ item.letter == "aa" } }) Básicamente actualizando el primer elemento en el objeto para que sea {number:1, letter:"aa"} . Sin embargo, esto termina dándome una matriz vacía. No creo que lo esté haciendo de la manera correcta. ¿Cómo podría usar el filter para editar ciertos elementos?
.filter no es realmente apropiado aquí porque eso crearía una nueva matriz con solo los elementos que cumplen la condición, que luego tendría que volver a colocarse en la matriz original de alguna manera, posible, pero complicado. Asigne la matriz en su lugar; si se cumple la condición, devuelva un objeto modificado.
Recuerde que en React, debe evitar la mutación: no asigne una propiedad de un objeto existente, cree uno nuevo en su lugar.
const abc = [ {number: 1, letter: "a"}, {number: 2, letter: "b"}, {number: 3, letter: "c"}, {number: 4, letter: "d"}, ]; const newArr = abc .map(obj => obj.number === 1 ? { ...obj, letter: 'aa' } : obj ); console.log(newArr);