splice 似乎在拼接的元素和拼接它们的元素之间创建了一种动态关系......???
假设我有一个数组 数组 = [ [1 , 2 , 3] ]
我想复制此列并将新列的最后一个值更改为 4。我使用了: 虚无 = Array.splice(0,0,Array[0]); 数组[1][2] = 4;
然而,这会导致 数组 = [ [ 1 , 2 , 4 ] , [ 1 , 2 , 4 ] ]
这是一个精简的示例,在实际问题中,我正在迭代解决方案,在每一步添加可能性,因此嵌套循环会变得混乱......
见解?? ..或者:如何复制数组中间的一列并更改其中一个值?
我相信您的目标如下。
[[1, 2, 3]]
到 [[1, 2, 3, 4]]
。Array
是一个对象。在这种情况下,我建议重命名变量Array
。array.splice(0, 0, array[0])
,[1, 2, 3]
会插入到顶部元素。array[1][2] = 4
处,3
中的[1, 2, 3]
被替换为4
。此外,在这种情况下,两个元素都会通过引用传递而更改。这样,结果就是[ [ 1 , 2 , 4] , [ 1 , 2 , 4] ]
。当这些点体现在脚本中时,下面的修改如何?
// If you want to use splice.
const array1 = [[1, 2, 3]];
array1.forEach(row => row.splice(row.length, 0, 4));
console.log(array1); // [ [ 1, 2, 3, 4 ] ]
// Another approach 1
const array2 = [[1, 2, 3]];
array2.forEach(row => row.push(4));
console.log(array2); // [ [ 1, 2, 3, 4 ] ]
// Another approach 3
const array3 = [[1, 2, 3]];
const res = array3.map(row => [...row, 4]);
console.log(res); // [ [ 1, 2, 3, 4 ] ]
[ [ 1, 2, 3, 4 ] ]
返回与 [[1, 2, 3]]
相同的结果。