分配给变量后数组发生变化


问题:

给你两个数组和一个索引。

按顺序将第一个数组的每个元素复制到第二个数组中。

开始在第二个数组的索引 n 处插入元素。

返回结果数组。 函数运行后输入数组应保持不变。

我的代码是:

JavaScript
<pre>unction frankenSplice(arr1, arr2, n) {
 let newarr = arr2;
  
  newarr.splice(n,0,...arr1);

  console.log(arr2);
  console.log(newarr)
  
  return newarr;
}

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

我尝试过的:

我希望 arr2 保持相同,但分配给 newarr 后,arr2 得到相同的值 newarr 具有

解决方案1

您的代码中有一个小错误。 splice 方法就地修改数组并返回包含已删除元素的数组。 您需要将一个数组插入到另一个数组中,因此您需要的只是一个拼接。 这是代码的修改版本:

JavaScript
function frankenSplice(arr1, arr2, n) {
  
  // Create a shallow copy of arr2 to avoid modifying it directly
  let newarr = arr2.slice();
  
  newarr.splice(n, 0, ...arr1);

  console.log(arr2);
  console.log(newarr);

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

参考: https://stackoverflow.com/questions/58209968/how-to-use-splice-and-slice-to-put-an-array-into-another-array[^]

コメント

タイトルとURLをコピーしました