Desafío de código que estaba tratando de resolver:
Escriba una función que tome una matriz "especial" y devuelva la suma de su producto; Una matriz "especial" es una matriz no vacía que contiene números enteros u otras matrices "especiales". La suma del producto de una matriz "especial" es la suma de sus elementos, donde las matrices "especiales" dentro de ella se suman y luego se multiplican por su nivel de profundidad.
La profundidad de una matriz "especial" es qué tan anidada está. Por ejemplo, la profundidad de [] es 1; la profundidad de la matriz interna en [[]] es 2; la profundidad de la matriz más interna en [[[]]] es 3.
Intenté resolverlo así:
const productSum1 = (array, multiplier=1) => { let result = 0; for ( const element of array) { if ( Array.isArray(element)) { result += productSum1(element, ++multiplier) } else { result += element; } } return result* multiplier; }
Mi pregunta es sobre el multiplicador ++. El valor del multiplicador persistiría después de ejecutar la llamada superior en la pila en lugar de volver a su valor anterior en la llamada anterior. Tuve que decrementar el multiplicador (--multiplicador) para que devolviera el valor correcto. Sin embargo, cuando usé el multiplicador usado + 1, volvería a su valor anterior después de ejecutar la llamada superior. ¿Por qué pasó esto?
Disculpas por mi pregunta mal escrita. Soy muy nuevo en la programación y estoy seguro de que esto podría preguntarse de una manera mucho mejor.