Array JavaScript problém. První prvek přejít na poslední pozici

0

Otázka

Mám funkci, že se pole, a vrátí pole s power 2 pro každý prvek pole. Toto je zdrojový kód

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

Dostal jsem to jako výstup:

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 z elementů, jaká ve smyčce. Ale teď v poli, existuje první prvek, v některých reson, zůstali na konci. Snažil jsem se odstranit "1" z firstArr, pak "4" přejít na poslední pozici. Proč?

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

Nejlepší odpověď

2

Uvedení -1 ve vašem splice znamená, že budete-li vložit před poslední prvek v poli. Když pole je prázdné, to prostě zní jako jedinou položku.

Následující, pak vložit před poslední prvek pole, tedy každé další iteraci bude přidat položku jako předposlední prvek.

Já bych jen použít ES6 magie:

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

Použijte tento kód, to bude fungovat jako kouzlo!

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

Dobrý bože, to je takový těžký, spletitý způsob, jak to udělat. Můžete si doslova získat srovnat funkci, která TAKÉ pojďme si zadat jinou sílu zvýšit, pokud chcete v jednom řádku: const arrayPow = (arr, pow = 2) => arr.map(el => el**pow);
Jayce444

Původní odpověď byla jako zabít mouchu s brokovnicí.
Steve
0

Pokud jsem pochopit vaši otázku správně, chcete zvýšit každý prvek v poli o síle 2? Pokud je to tak, já jsem si nejste jisti, proč jste sestřih pole. Můžete zkusit následující:

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

V jiných jazycích

Tato stránka je v jiných jazycích

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