Javascript 通过动态数组递归

Javascript 通过动态数组递归,javascript,arrays,algorithm,performance,recursion,Javascript,Arrays,Algorithm,Performance,Recursion,我正在为以下代码片段寻找通用解决方案:: vard=[[1,2,3],[1,2],[1,2,3,4,5,6]; d[0]。映射((val1,index1)=>{ d[1]。映射((val2,index2)=>{ d[2].映射((val3,index3)=>{ console.log(index1、index2、index3); }) }) });您可以使用迭代和递归方法 vard=[[1,2,3],[1,2],[1,2,3,4,5,6]], 处理器=阵列=>{ var iter=p=>p.

我正在为以下代码片段寻找通用解决方案::

vard=[[1,2,3],[1,2],[1,2,3,4,5,6];
d[0]。映射((val1,index1)=>{
d[1]。映射((val2,index2)=>{
d[2].映射((val3,index3)=>{
console.log(index1、index2、index3);
})
})

});您可以使用迭代和递归方法

vard=[[1,2,3],[1,2],[1,2,3,4,5,6]],
处理器=阵列=>{
var iter=p=>p.lengthiter(p.concat(i)):
控制台日志(p);
iter([]);
};
处理器(d)
.as控制台包装{max height:100%!important;top:0;}
您可以执行以下操作

var-cart=(a,b)=>a.reduce((p,c)=>p.concat(b.map(e=>[].concat(c,e)),[]);
arr=[[1,2,3],[1,2],[1,2,3,4,5,6],[8,9],
res=arr.reduce(购物车);

log(JSON.stringify(res))
迭代
d
并使用
Array.isArray()
递归调用函数。对于每个元素,它将
将它推送到一个生成的数组中。我无法理解您试图实现什么,即使是在特殊情况下……您是否正在尝试合并数组?你的问题不清楚。你能再解释一下你想要实现什么吗?这不是
map
的用例,你可能想把它改成
forEach
!但这不是一个解决方案!这和巧克力茶壶一样有道理。请修改it@georg很遗憾你删除了你的答案。老实说,我相信这项工作必须由发电机惰性地完成。但在JS中,它们看起来不像在Haskell中那么酷。