Array.prototype.fill 填充值被複用的問題
- 2021 年 4 月 18 日
- 筆記
考察如下示例程式碼: // 創建二維數組
const arr = Array(2).fill([]);
// 操作第一個元素
arr[0].push(1);
// 結果是操作了所有數組
console.log(arr); // [ [ 1 ], [ 1 ] ]
和 new 不 new 關係,以下程式碼問題同樣存在 - const arr= Array(12).fill([])
+ const arr= new Array(12).fill([])
arr[0].push(1)
console.log(arr); // [ [ 1 ], [ 1 ] ]
問題出在這個
修正方式則是通過 const arr = Array(2)
.fill(1)
.map((item) => []);
arr[0].push(1);
// 結果是操作了所有數組
console.log(arr); // [ [ 1 ], [] ]
之所以在
相關資源 |
The text was updated successfully, but these errors were encountered: |