我有初学者的麻烦与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