Haii
我想要一个用于创建多维数组的函数(纯JavaScript)(没有jQuery)。
我制作了一个完全硬编码的文件,它限制了我可以深入研究的尺寸数量。
function nestTriArray(first, second, third){
const arr = new Array(first);
for(let i=0; i<first; i++){
arr[i] = new Array(second);
for(let j=0; j<second; j++){
arr[i][j] = new Array(third);
}
}
return arr;
}
const test = nestTriArray(3,2,3);
console.log(test);
输出正确的结果:
//[[[undefined, undefined, undefined], [undefined, undefined, undefined]], [[undefined, undefined, undefined], [undefined, undefined, undefined]], [[undefined, undefined, undefined], [undefined, undefined, undefined]]]
我曾尝试在一个函数中使其具有多维性(而不是硬编码用于第四维,第五维的独立函数...),在该函数中,我将一个数组的长度传递给该函数。数组是维数,每个元素代表每个子数组的长度。它使用递归函数。并且输出错误。
这是尝试:
function nestArray(conf_array/*first, second, third*/){
conf_array = [1].concat(conf_array);
const arr = [];
let last_in_ref = arr;
function re(index){
last_in_ref[conf_array[index]] = new Array(conf_array[index+1]);
for(let i=0; i<conf_array[index]; i++){
last_in_ref[i] = new Array(conf_array[index+1]);
}
last_in_ref = last_in_ref[index];
console.log(arr);
index++;
if(index < conf_array.length){re(index);}
}
re(0);
return arr;
}
const test = nestArray([3,2,3]);
console.log(test);
输出错误:
//[[[undefined, undefined], [[undefined, undefined, undefined], [undefined, undefined, undefined], [[undefined], [undefined], [undefined], [undefined]]], [undefined, undefined], [undefined, undefined]], [undefined, undefined, undefined]]
提前感谢!