Quiero usar forEach en una matriz. Dado que forEach es un mutador, debería mutar los valores en la matriz original, pero no lo es. ¿Cuál es el problema aquí?
let array = [1, 2, 3, 4]; //simple array declaration array.forEach((ele) => ele * 2); //using forEach to double each element in "array" console.log(array); //logs [1,2,3,4] instead of [1,4,6,8]¿Que está pasando aqui?
No, forEach no muta la matriz original.
Puede lograr lo que está buscando dando un segundo parámetro de index y luego actualizando los valores de la matriz original.
let array = [1, 2, 3, 4]; array.forEach((ele, index) => array[index] = ele * 2); console.log(array);documentación para cada uno
La devolución de llamada Array#forEach tiene un segundo y tercer parámetro opcional que puede usar para acceder y mutar cada elemento:
índice [Opcional]: el índice del elemento en la matriz.
matriz [Opcional]: se invocó la matriz forEach().
const array = [1, 2, 3, 4]; array.forEach((_, index, arr) => arr[index] *= 2); console.log(array);