我正在尝试做这样的事情,但是是动态的: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; }
添加回答
举报
0/150
提交
取消