插入的数组在反向 JS 中显示

Inserted array shows in reverse JS

我刚开始学习 js,而且(我敢肯定)我遇到了很多问题,哈哈。我正在尝试将一个数组复制到指定索引位置的另一个数组中。

我似乎可以做所有正确的事情,但是当我记录结果时,插入的数组显示相反,我不知道为什么???。

我也试过.forEach as 循环方法,但我还是有点菜不能用。

这是代码:

function frankenSplice(arr1, arr2, n) {
  let newArr = arr2.slice([]);
  for (let i = 0; i < arr1.length; i++) {
    newArr.splice(n, 0, arr1[i]);
    console.log(newArr)
  }
}

frankenSplice([1, 2, 3], [4, 5, 6], 1);

它记录 // [ 4, 3, 2, 1, 5, 6 ] 而不是所需的输出:[ 4, 1, 2, 3, 5, 6 ]

您在同一索引处插入元素,因此在插入 1 后,您在同一位置插入 2,将 1 和所有后续元素移回。 像我在这里所做的那样,在每次迭代后向后迭代 arr1 或递增 n

function frankenSplice(arr1, arr2, n) {
  let newArr = arr2.slice([]);
  for (let i = 0; i < arr1.length; i++) {
    newArr.splice(n, 0, arr1[i]);
    console.log(newArr)
    n++; // add this
  }
}

frankenSplice([1, 2, 3], [4, 5, 6], 1);