JavaScript的4D阵列 [英] Javascript 4D arrays
问题描述
任何人都有一个函数来创建4D阵列(或任何与此有关的维数)?
我想调用的函数,在那之后我可以这样做改编[3] [2] [23] [12] =真棒;
功能使(变暗,LVL,编曲){
如果(LVL === 1)返回[];
如果(!LVL)LVL =暗淡;
如果(ARR!)ARR = [];
对于(VAR I = 0,1 =暗淡; I< L,I + = 1){
改编[I] =令(偏暗,LVL - 1,编曲[I]);
}
返回ARR;
}VAR myMultiArray =使(4);
更新::您可以指定一个水平应该有多深的第一个参数,多少在第二个层次。例如:
VAR myMultiArray =使(64,4);
这将允许您设置和格式获得:
myMultiArray [X] [X] [X] [X] = ....
不过,X必须始终小于64,则不能设置 myMultiArray [X] [70] [X] [X]
例如,因为 myMultiArray [X] [70]
尚未定义
注意 - 运行制作(64,4)
是非常缓慢 - 要创建64 ^ 4空数组元素(即16777216)
更新2::您可以逃脱的最后一个值的任何数字或字符串。 IE浏览器。 myMultiArray [X] [X] [X] [Y]
其中X; 64和Y可以是任何东西。
该算法进行了优化,以及,给它一个去。
Anyone have a function to create 4D arrays (or any number of dimensions for that matter)?
I'd like to call the function, then after that I can do something like arr[3][2][23][12] = "awesome";
function make(dim, lvl, arr) {
if (lvl === 1) return [];
if (!lvl) lvl = dim;
if (!arr) arr = [];
for (var i = 0, l = dim; i < l; i += 1) {
arr[i] = make(dim, lvl - 1, arr[i]);
}
return arr;
}
var myMultiArray = make(4);
Update: you can specify how deep a level should be in the first parameter, and how many levels in the second. e.g.:
var myMultiArray = make(64, 4);
This will allow you to set and get in this format:
myMultiArray[X][X][X][X] = ....
But X must always be less than 64. You cannot set myMultiArray[X][70][X][X]
for example, because myMultiArray[X][70]
has not yet been defined
Note- running make(64, 4)
is awfully slow - you are creating 64 ^ 4 empty array elements (i.e. 16,777,216).
Update 2: you can get away with the last value as any number or string. Ie. myMultiArray[X][X][X][Y]
where X < 64 and Y can be anything.
The algorithm has been optimised as well, give it another go.
这篇关于JavaScript的4D阵列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!