Maison  >  Questions et réponses  >  le corps du texte

Créez une fonction qui alterne entre .pop() et .shift()

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粉403804844P粉403804844404 Il y a quelques jours439

répondre à tous(1)je répondrai

  • P粉920835423

    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

    répondre
    0
  • Annulerrépondre