JS生成高维数组

希望生成高维数组
下面的赋值是错误的

let arr_1=new Array(11).fill(0)
let arr_2=new Array(13)
arr_2.fill(arr_1)

循环赋值

let arr=new Array(13);
for(let i=0;i<13;i++){
   arr[i]=new Array(11).fill(0)
}

JS想生成高维数组只能通过循环赋值吗?有没有什么比较好的思路或方法

阅读 2.7k
2 个回答

借用joy钰的思路

let arr=new Array(10).fill(0).map(v=>new Array(10).fill(0));

JS数组初始化需要注意空位的问题
// ES5对空位的处理很不一致,大多数情况下会忽略空位
// forEach,filter,every,some,map都会跳过空位
// join,toString会将空位视为undefined,而undefined和null会被处理为空字符串
// ES6明确规定将空位转为undefined
// Array.from,...运算符,fill,for...of遍历,entries,keys,values,find,findIndex都会将空位处理成undefined
// 由于空位的处理规则非常不统一,所有建议避免出现空位

let arr = [...array1, ...array2];
也许结构可以帮助你

推荐问题