對不起,非常基本的問題,我是新的。傳遞一個JS陣列到一個新的陣列
如果我有一個數組並將其傳遞給一個新變量(newArray = oldArray),那麼從newArray中移除一個元素,它似乎也會影響oldArray。
我的猜測是,它只是創建一個新的引用到同一個變量,所以存儲在oldArray中的數據現在有兩個標識符?
如果是的話,我怎麼實際上將oldArray中的元素傳遞給newArray,使newArray與oldArray是獨立的?
在此先感謝
對不起,非常基本的問題,我是新的。傳遞一個JS陣列到一個新的陣列
如果我有一個數組並將其傳遞給一個新變量(newArray = oldArray),那麼從newArray中移除一個元素,它似乎也會影響oldArray。
我的猜測是,它只是創建一個新的引用到同一個變量,所以存儲在oldArray中的數據現在有兩個標識符?
如果是的話,我怎麼實際上將oldArray中的元素傳遞給newArray,使newArray與oldArray是獨立的?
在此先感謝
的最快方法是使用數組函數返回一個新的數組實例。通常情況下,我使用:
var newArray = oldArray.slice(0);
非常感謝很多人,我無法相信答案有多快。令人驚歎的網站:) – jsnewb
在這種情況下,你必須使用切片的方法克隆數組:
newArray = oldArray.slice(0);
也許答案是一樣的...但我做了搜索,沒有找到答案。這是因爲我沒有意識到價值傳遞和參照傳遞之間是有區別的,因爲我確信很多像我這樣的新手都不會意識到,讓我的問題可以在我們的新搜索中找到:P – jsnewb