Chicos, lamento preguntar esto. Tal vez uno fácil, pero soy nuevo en este idioma.
let arr =[1,2,3,4,5,6]; arr.forEach(a => a++); console.log(arr);¿Por qué esto no funciona?
let arr =[ {name:"a"}, {name:"b"}, {name:"c"} ]; arr.forEach(a => a.name = "d"); console.log(arr);pero esto funciona?
El valor pasado a la devolución de llamada .forEach se pasa por valor (si es un tipo primitivo), o efectivamente como una referencia (si es un objeto o una matriz).
Por lo tanto, su primitivo a++ está modificando una copia del valor, por lo que no hace nada útil. Sin embargo, cuando pasa un objeto, es posible modificar las propiedades de ese objeto, porque la referencia (copia de la) que ahora tiene en a todavía se refiere al objeto original.
Porque cada una es solo una función que recorre la matriz, al hacer => a++, no está verificando ninguna condición ni tiene ninguna lógica allí. Según tengo entendido, lo que está buscando en la función .map, que recorre una matriz y devuelve otra