JavaScript创建二维数组

方法一(错误)

const x = new Array(6).fill(new Array(6).fill(null));
使用该方法创建的二维数组,修改一个值,会导致同一列的值都被修改。

原因是使用了fill()。当您将创建一个带有对象(引用类型)的数组时,则每个元素都在内存中引用相同的值。通俗的讲,就是我们创建了一个一维数组,将一维数组重复放到一个新的一维数组里面,得到的二维数组,这样就是其实他们都是同一个数组。因为fill添加的是一个静态值

方法二(正确)

const x = [...Array(6)].map(x => Array(6).fill(null))
用上述代码创建的二维数组不会有法一的问题
是因为使用传播运算符,然后使用map(),不需要将new与array一起使用。 new Array和Array相同

猜你喜欢

转载自blog.csdn.net/weixin_44364294/article/details/128741416
今日推荐