Maison > Questions et réponses > le corps du texte
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粉9208354232023-09-12 19:54:24
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