Tableau JavaScript problème. Premier élément d'aller à la dernière position

0

La question

J'ai de la fonction get tableau, et de retourner un tableau avec les puissance de 2 de chaque élément du tableau. C'est le code source

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

J'ai eu ceci comme résultat:

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 correcte dans la boucle. Mais maintenant, dans le tableau, il y a d'abord l'élément, dans certains reson, rester à la fin. J'ai essayé de supprimer "1" de l'firstArr, puis "4" aller à la dernière position. Pourquoi?

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

La meilleure réponse

2

Mettre -1 dans votre épissure signifie que vous insérez avant le dernier élément dans le tableau. Lorsque le tableau est vide, il est simplement ajouté que le seul élément.

La suite, vous pouvez ensuite insérer avant le dernier élément du tableau, où chaque itération va ajouter l'élément que l'avant-dernier élément.

Je voudrais juste utiliser 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

Utiliser ce code, il fonctionne comme un 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

Bon dieu c'est comme un lourd, alvéolé façon de faire. Vous pouvez littéralement obtenir une élévation de fonction qui vous permet AUSSI de spécifier une autre le pouvoir de ressusciter si vous souhaitez en une seule ligne: const arrayPow = (arr, pow = 2) => arr.map(el => el**pow);
Jayce444

D'origine, la réponse était comme tuer une mouche avec un fusil de chasse.
Steve
0

Si je suis la compréhension de votre question correctement, vous voulez augmenter chaque élément du tableau par la puissance de 2? Si oui, je ne suis pas certain pourquoi vous êtes épissage le tableau. Vous pouvez essayer les suivantes:

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

Dans d'autres langues

Cette page est dans d'autres langues

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