2016-03-16 82 views
0
var x = [1,2,3]; 
var y = x; 
y.fill(5); 
console.log(x); //[5,5,5] 
console.log(y); //[5,5,5] 

如何防止變種X陣列由填充()方法改變?爲什麼y.fill()同時改變var yvar x如何在方法使用後保持變量值相同?

+1

您可能有兩個變量,但只有一個數組。 –

回答

3

y指向與x相同的陣列。如果您想防止這種情況發生,您需要複製/克隆x,並將其分配給y

var y = x.slice(); 
+0

我知道這很簡單:)謝謝! –

0

您的變量y是對x數組的引用。試用var y = [1,2,3];var y = x.slice();會給你一個淺的副本。查看深VS。淺拷貝來確定這是否是一個適當的解決方案。

相關問題