首页  >  问答  >  正文

创造一个函数,交替使用.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粉403804844423 天前456

全部回复(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
  • 取消回复