我一直试图找到一种相当简洁的方法来设置一个空的多维JavaScript数组的维度,但到目前为止还没有成功.
首先,我尝试使用初始化一个空的10x10x10数组var theArray = new Array(10, 10 10),但相反,它只创建了一个包含3个元素的1维数组.
我已经弄清楚如何使用嵌套的for循环初始化一个空的10x10x10数组,但以这种方式编写数组初始化器非常繁琐.使用嵌套for循环初始化多维数组可能非常繁琐:是否有更简洁的方法在JavaScript中设置空多维数组的维度(具有任意多个维度)?
//Initializing an empty 10x10x10 array:
var theArray = new Array();
for(var a = 0; a < 10; a++){
theArray[a] = new Array();
for(var b = 0; b < 10; b++){
theArray[a][b] = new Array();
for(var c = 0; c < 10; c++){
theArray[a][b][c] = 10
}
}
}
console.log(JSON.stringify(theArray));
Run Code Online (Sandbox Code Playgroud)
改编自这个答案:
function createArray(length) {
var arr = new Array(length || 0),
i = length;
if (arguments.length > 1) {
var args = Array.prototype.slice.call(arguments, 1);
while(i--) arr[i] = createArray.apply(this, args);
}
return arr;
}
Run Code Online (Sandbox Code Playgroud)
只需使用参数调用每个维度的长度即可.用法示例:
var multiArray = createArray(10,10,10); 给出一个等长的三维数组.var weirdArray = createArray(34,6,42,2); 给出了不等长度的四维数组.| 归档时间: |
|
| 查看次数: |
1514 次 |
| 最近记录: |