Matriz JavaScript problema. O primeiro elemento vai para a última posição

0

Pergunta

Eu tenho função que recebe uma matriz, e a matriz de retorno com potência de 2 de cada elemento de matriz. Este é o código fonte

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

Eu tenho isto como resultado:

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]

Scedule de elments correto em loop. Mas agora, na matriz, lá primeiro elemento, em alguns reson, ficar no final. Eu tentei apagar "1" firstArr, em seguida, "4" ir para a última posição. Por quê?

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

Melhor resposta

2

Colocando -1 em seu emenda significa que você inserir antes do último elemento em um array. Quando a matriz estiver vazia, ele simplesmente é adicionado como o único item.

A seguir, você, em seguida, inserir antes do último elemento do array, portanto, a cada iteração subseqüente irá adicionar o item como a segunda último elemento.

Gostaria apenas de usar 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

Use este código, ele irá funcionar como charme!

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

Bom senhor, que é tão pesado, complicado maneira de fazê-lo. Você pode literalmente pegar uma função quadrática, que TAMBÉM permitem a você especificar um diferente poder de levantar para se deseja em uma linha: const arrayPow = (arr, pow = 2) => arr.map(el => el**pow);
Jayce444

Que original resposta foi como matar uma mosca com um tiro de espingarda.
Steve
0

Se eu estou entendendo sua pergunta corretamente, você quer aumentar cada elemento na matriz por potência de 2? Se for assim, eu não tenho certeza por que você está de emenda matriz. Você pode tentar o seguinte:

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

Em outros idiomas

Esta página está em outros idiomas

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