Tengo una función que obtiene una matriz y devuelve una matriz con potencia 2 de cada elemento de la matriz. Este es el código fuente
const firstArr = [1, 2, 3, 7, 4, 9]; function arrayPow(arr) { const outputArray = []; arr.forEach(el => { console.log(el); outputArray.splice(-1, 0, el**2); }) return outputArray; } console.log(arrayPow(firstArr));Obtuve esto como salida:
script.js:8 1 script.js:8 2 script.js:8 3 script.js:8 7 script.js:8 4 script.js:8 9 script.js:14 (6) [4, 9, 49, 16, 81, 1]Calendario de elementos correctos en bucle. Pero ahora en la matriz, el primer elemento, en alguna resonancia, permanece al final. Intenté eliminar "1" de firstArr, luego "4" ir a la última posición. ¿Por qué?
Poner -1 en su empalme significa que inserta antes del último elemento en la matriz. Cuando la matriz está vacía, simplemente se agrega como el único elemento.
A continuación, inserta antes del último elemento de la matriz, por lo tanto, cada iteración posterior agregará el elemento como el penúltimo elemento.
Simplemente usaría la magia ES6:
const firstArr = [1, 2, 3, 7, 4, 9]; const arrayPow = (arr) => arr.map(i => i**2) console.log(arrayPow(firstArr))¡Usa este código, funcionará de maravilla!
const firstArr = [1, 2, 3, 7, 4, 9]; function arrayPow(arr) { return arr.map(v => v ** 2); } console.log(arrayPow(firstArr));Si entiendo su pregunta correctamente, ¿quiere elevar cada elemento de la matriz a la potencia de 2? Si es así, no estoy seguro de por qué está empalmando la matriz. Podrías intentar lo siguiente:
function arrayPow(arr) { const outputArray = []; arr.forEach(el => { outputArray.push(el**2); }) return outputArray; } const test = [1,2,3] console.log(arrayPow(test))