我在 JS 练习中遇到了初学者的麻烦。 我必须编写一个函数 popAndShift()。该函数必须首先打印数组 array1 和 array2 的内容。此后,将删除 array2 的元素,在 .pop() 和 .shift() 方法之间交替(从 .pop() 开始),同时将删除的值添加到 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);
}
我看了你提供的图片,这个新功能应该可以工作并提供预期的输出。我们正在存储一个名为
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