Array.prototype.fill 填充值被复用的问题
考察如下示例代码: // 创建二维数组
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: |
CC BY-NC-SA 署名-非商业性使用-相同方式共享