为了账号安全,请及时绑定邮箱和手机立即绑定

如何为具有动态嵌套的数组赋值?

如何为具有动态嵌套的数组赋值?

互换的青春 2023-07-14 16:50:58
我正在尝试做这样的事情,但是是动态的: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]]]当范围= 3时我输入开关,结果将是:[1,2,[5,3,9,[4,"好东西"]]]但是,如果范围 = 2,结果将是:[1,2,[5,3,9,[4],"好东西"]]我编写的代码适用于此目的,但我想在范围可以等于任何数字时动态地(无需切换)(假设数组将始终具有预先的范围,而不需要添加新的嵌套)。
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

如果是一个,你可以进行递归并推送scope。


(个人认为,从编程的意义上来说,基于零的范围界定会更自然。)


function push(array, scope, value) {

    if (scope === 1) return array.push(value);

    push(array[array.length - 1], scope - 1, value);

}


const array = [1, 2, [5, 3, 9, [4]]];


push(array, 3, 'something nice');


console.log(array);

.as-console-wrapper { max-height: 100% !important; top: 0; }


查看完整回答
反对 回复 2023-07-14
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信