我正在寻找以下代码段的通用解决方案::
var d = [[1,2,3], [1,2], [1,2,3,4,5,6]];
d[0].map((val1, index1) => {
d[1].map((val2, index2) => {
d[2].map((val3, index3) => {
console.log(index1, index2, index3);
})
})
});

这里控制了3个数组元素的可能组合。
我们可以概括一下,例如。
var d = [[1,2,3], [1,2], [1,2,3,4,5,6], [1,2,3,4]]; // k number of elements
Psuedo code ::
let processor = (d) => {
// implementation code
// output will be the combination for 4 array elements this time.
}
有人可以帮我设计过程功能吗?寻找一个普遍的解决方案。任何帮助或领导都是可观的。
答案 0 :(得分:1)
您可以使用迭代和递归方法。
var d = [[1, 2, 3], [1, 2], [1, 2, 3, 4, 5, 6]],
processor = array => {
var iter = p => p.length < array.length ?
array[p.length].forEach((_, i) => iter(p.concat(i))) :
console.log(p);
iter([]);
};
processor(d);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:1)
您可以执行以下操作;
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(cart);
console.log(JSON.stringify(res));
&#13;