如何创建一个在 .pop() 和 .shift() 之间交替的函数

问题描述 投票:0回答:1

我在 JS 练习中遇到了初学者的麻烦。 我必须编写一个函数 popAndShift()。该函数必须首先打印数组 array1 和 array2 的内容。此后,将删除 array2 的元素,在 .pop() 和 .shift() 方法之间交替(从 .pop() 开始),同时将删除的值添加到 array1 的末尾。最后,将打印 array1 的内容。 **自动测试负责为数组分配值。 ** 我的代码通过了第一次测试,但第二次失败了。我想知道是否必须使用 for 循环来达到预期的结果。希望能对此有所帮助,谢谢。

code and tests screenshot

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);
}   
javascript arrays
1个回答
0
投票

我看了你提供的图片,这个新功能应该可以工作并提供预期的输出。我们正在存储一个名为

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
© www.soinside.com 2019 - 2024. All rights reserved.