首頁 > web前端 > js教程 > 為什麼 Array.fill(Array) 在多維數組中透過引用建立副本?

為什麼 Array.fill(Array) 在多維數組中透過引用建立副本?

Barbara Streisand
發布: 2024-11-29 09:30:11
原創
879 人瀏覽過

Why Does Array.fill(Array) Create Copies by Reference in Multidimensional Arrays?

Array.fill(Array) 透過引用建立副本

使用Array.fill 建立多維數組時,需要注意的是內部陣列最初是透過引用複製的。這意味著對一個內部數組的任何修改都會反映在引用同一數組物件的所有其他數組中。

例如:

let m = Array(6).fill(Array(12).fill(0));

m[0][0] = 1;
console.log(m[1][0]); // Outputs 1 instead of 0
登入後複製

要解決此問題,您可以使用Array.from () 而不是Array.fill():

let m = Array.from({length: 6}, e => Array(12).fill(0));

m[0][0] = 1;
console.log(m[0][0]); // Expecting 1
console.log(m[0][1]); // Expecting 0
console.log(m[1][0]); // Expecting 0
登入後複製

Array.from () 建立可迭代物件的副本(在本例中,具有長度屬性的物件和傳回新陣列的映射函數)。這確保了每個內部數組都是獨立的,對其中一個數組的任何修改都不會影響其他數組。

以上是為什麼 Array.fill(Array) 在多維數組中透過引用建立副本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板