js创建二维数组
方法一:
new Array(n).fill(new Array(n).fill(1));
当一个对象被传递给
fill
方法的时候, 填充数组的是这个对象的引用所以一维中的每一个数组,都指向同一个引用
如果一维中的任何一个元素执行push,哪个每一个二维中都会多一个元素
所以为了避免这种情况可以
new Array(n).fill().map(()=>{return new Array(n).fill(false)})
方法二:
Array.from(new Array(3),()=>{return new Array(3).fill(false)})
fill 方法故意被设计成通用方法, 该方法不要求 this 是数组对象。 fill 方法是个可变方法, 它会改变调用它的 this 对象本身, 然后返回它, 而并不是返回一个副本。 当一个对象被传递给 fill方法的时候, 填充数组的是这个对象的引用。
来源:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/fill