Créez une fonction qui alterne entre .pop() et .shift()
P粉403804844
P粉403804844 2023-09-11 21:30:34
0
1
481

J'ai des difficultés de débutant avec mes exercices JS. J'ai besoin d'écrire une fonction popAndShift(). Cette fonction imprime d'abord le contenu des tableaux array1 et array2. Ensuite, supprimez alternativement les éléments du tableau2 à l'aide des méthodes .pop() et .shift() (en commençant par .pop()) et ajoutez les valeurs supprimées à la fin du tableau1. Enfin, imprimez le contenu du tableau1. **Les tests automatisés attribuent des valeurs aux tableaux. ** Mon code réussit le premier test mais échoue au second. Je me demande si je dois utiliser une boucle for pour obtenir le résultat souhaité. Merci pour votre aide.

Captures d'écran de code et de test

function popAndShift(){

console.log("First array: " + array1);
console.log("Second array: " + array2);

RemoveE =array2.pop();
RemoveB=array2.shift();
RemoveC =array1.push(RemoveE,RemoveB,array2);
    
console.log("Resulting array:" + array1);
}

P粉403804844
P粉403804844

répondre à tous(1)
P粉920835423

J'ai regardé l'image que vous avez fournie et cette nouvelle fonction devrait fonctionner et produire le résultat attendu. Nous stockons une variable appelée usePop puis l'utilisons alternativement à chaque fois que nous exécutons la boucle jusqu'à ce que array2 soit vide.

const array1 = ["A"];
const array2 = ["B", "C", "D", "E", "F", "G", "H", "I"];

function popAndShift(){
  console.log("First array: " + array1);
  console.log("Second array: " + array2);

  let usePop = true;
  while (array2.length > 0) {
    array1.push(usePop ? array2.pop() : array2.shift());
    usePop = !usePop;
  }

  console.log("Resulting array: " + array1);
}

popAndShift();

Sortie :

First array: A
Second array: B,C,D,E,F,G,H,I
Resulting array: A,I,B,H,C,G,D,F,E
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal