我正在将一个数组推送到第二个数组,然后取消第一个数组并弹出第一个数组,但由于某种原因,这会影响第二个数组。为什么是这样?我希望resultsList等于[0,1,0,0]
,但它最终为[0,0,1,0]
var pattern = [0,1,0,0];
var resultsList = [];
resultsList.push( pattern );
pattern.unshift( pattern.pop() );
console.log( resultsList );
这是一个让它更容易理解的JSFiddle。
答案 0 :(得分:1)
您需要复制数组,否则通过引用传递。
要复制数组,请使用:
pattern.slice(0)
答案 1 :(得分:1)
pattern.pop()
删除并返回pattern
中的最后一项。
pattern.unshift(item)
在item
的开头添加pattern
。
所以输出是预期的:
[ 0, 1, 0, 0 ]
Λ |
|__________|