js 创建二维数组的方法:
方法一:
直接设置
let arr = [] ; arr[0] = [1,2,3,4,5,6]; arr[1] = [10,20,30,40,50,60]
方法二:
fill + 一个 for 循环
let arr= new Array(10).fill(0) for(let i=0;i<arr.length;i++){ arr6[i]=new Array(5).fill(1) }
或
两个 for 循环
var arr = new Array(); for(var i=0;i<5;i++){ //一维长度为5 arr[i] = new Array(); for(var j=0;j<5;j++){ //二维长度为5 arr[i][j] = 0; } }
方法三:
fill + map
const arr1 = Array(3).fill(0).map(x => Array(3).fill(0))
注意:
使用非for循环直接使用fill 创建二维数组,必须先给一维数组赋初始值,且为基本类型,再赋二维数组,否则会导致创建的二维数组不同行之间的同一列指向同一片数据,一改全改。
原因在 fill 官方文档里找到一句话:当一个对象被传递给 fill
方法的时候,填充数组的是这个对象的引用。
如:
new Array(10).fill(new Array(10).fill(0))
执行:
arr[0][0]=1
参考链接:https://www.jb51.net/article/229469.htm
https://www.cnblogs.com/ZhYQ-Note/articles/15878939.html
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/fill
标签:arr,js,二维,数组,new,Array,fill From: https://www.cnblogs.com/beileixinqing/p/16645080.html