Javascript 如何为具有动态嵌套的数组赋值?
我正在尝试这样做,但动态:Javascript 如何为具有动态嵌套的数组赋值?,javascript,arrays,Javascript,Arrays,我正在尝试这样做,但动态: switch (scope) { case 1: array.push("something nice"); break; case 2: array[array.length-1].push("something nice"); break; case 3: array[array[array.length-1].length-1].push("something nice"); b
switch (scope) {
case 1: array.push("something nice"); break;
case 2: array[array.length-1].push("something nice"); break;
case 3: array[array[array.length-1].length-1].push("something nice"); break;
case 4: ...you get the idea
}
这意味着,如果我有这样一个数组:
[1,2、[5,3,9、[4]]
当scope=3时,我输入开关,结果是:
[1,2、[5,3,9、[4,“好东西”]]
但是,如果scope=2,结果将是:
[1,2、[5,3,9、[4],“好东西”]]
我编写的代码可以实现这一点,但我想在作用域可以等于任何数字时动态地(不带开关)实现它(预先计算数组将始终具有该作用域,而无需添加新的嵌套)。如果
作用域是一个,则可以进行递归并推送
(就编程而言,我个人认为基于零的范围界定更为自然。)
函数推送(数组、范围、值){
if(scope==1)返回array.push(value);
push(数组[array.length-1],作用域-1,值);
}
常量数组=[1,2,5,3,9,4]];
推(数组,3,'好东西');
console.log(数组)代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}