Array JavaScript problema. Primo elemento di andare per l'ultima posizione

0

Domanda

Ho una funzione che ottenere array, e return array con potenza 2 di ogni elemento dell'array. Questo è il codice sorgente

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));

Ho questo output:

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]

Piano di elments corretto in loop. Ma ora, in matrice, primo elemento, in alcuni reson, soggiorno, alla fine. Ho provato a eliminare "1" da firstArr, quindi "4" vai all'ultima posizione. Perché?

arrays javascript
2021-11-24 04:49:39
3

Migliore risposta

2

Mettere -1 nel tuo impiombare significa che prima di inserire l'ultimo elemento dell'array. Quando l'array è vuoto, si è semplicemente aggiunto come unico elemento.

In seguito, si inserisce prima dell'ultimo elemento dell'array, quindi ogni successiva iterazione aggiungere l'elemento al penultimo elemento.

Vorrei solo utilizzare ES6 magia:

const firstArr = [1, 2, 3, 7, 4, 9];
const arrayPow = (arr) => arr.map(i => i**2)
console.log(arrayPow(firstArr))

2021-11-24 05:14:02
0

Usa questo codice, funziona come un fascino!

const firstArr = [1, 2, 3, 7, 4, 9];

function arrayPow(arr) {
    return arr.map(v => v ** 2);
}

console.log(arrayPow(firstArr));
2021-11-24 05:01:15

Signore buono, che è un pesante, contorto modo di farlo. Si può letteralmente ottenere una quadratura funzione che ti permette di specificare un diverso potere di elevare se si desidera in una sola riga: const arrayPow = (arr, pow = 2) => arr.map(el => el**pow);
Jayce444

Che originale risposta era come uccidere una mosca con un cannone.
Steve
0

Se io sono la comprensione che la tua domanda correttamente, si desidera raccogliere ogni elemento della matrice per la potenza di 2? Se è così, io sono sicuro perché si sono splicing dell'array. Si potrebbe provare il seguente:

function arrayPow(arr) {
    const outputArray = [];
    arr.forEach(el => {
        outputArray.push(el**2);
    })
    return outputArray;
}

const test = [1,2,3]
console.log(arrayPow(test))

2021-11-24 05:04:18

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................