首頁  >  問答  >  主體

創造一個函數,交替使用.pop()和.shift()來實現

我正在JS練習中遇到初學者的困難。 我需要寫一個函數popAndShift()。函數首先要列印陣列array1和array2的內容。然後,使用.pop()和.shift()方法(從.pop()開始)交替刪除array2的元素,並將刪除的值加到array1的末尾。最後,列印array1的內容。 **自動測試會為陣列指派值。 ** 我的程式碼通過了第一個測試,但第二個測試失敗。我想知道是否需要使用for迴圈來實現期望的結果。感謝您的幫助。

程式碼和測試截圖

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 天前441

全部回覆(1)我來回復

  • P粉920835423

    P粉9208354232023-09-12 19:54:24

    我查看了您提供的圖像,這個新的函數應該可以工作並產生預期的輸出。我們正在儲存一個名為usePop的變量,然後在每次運行循環時交替使用它,直到array2為空。

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

    輸出:

    First array: A
    Second array: B,C,D,E,F,G,H,I
    Resulting array: A,I,B,H,C,G,D,F,E

    回覆
    0
  • 取消回覆