0
点赞
收藏
分享

微信扫一扫

创建新数组时用fill方法填充引用数据类型的问题

三分梦_0bc3 2022-02-24 阅读 47

问题简述

当我们使用下面代码时会产生一个长度为10的数组

new Array(10).fill([false, false])

在这里插入图片描述
但是由于fill的是一个引用数据类型,会导致填充的所有[false,false]其实指向的都是同一个数组,所以只要改变其中一个剩余九个都会一起跟着改变。下边举个例子
在这里插入图片描述

解决方法

var arr = Array.apply(null, {length: 10}).map(() => ([false, false]))

或者

var arr = new Array(10)
for(let i =0;i<arr.length;i++){arr[i]=[false,false]}
arr[0][1] = true

在这里插入图片描述

举报

相关推荐

0 条评论