我需要制作一个函数,该函数接收数组并根据N个参数大小生成所有组合。示例:
function comb([1,2],3)
out:
[[1,1,1],
[1,1,2],
[1,2,1],
[1,2,2],
[2,1,1],
[2,1,2],
[2,2,1],
[2,2,2]]
或:
function comb([4,1],2)
out:
[[4,4],
[4,1],
[1,4],
[1,1]]
答案 0 :(得分:0)
我从Nina Scholz找到了一个解决方案
JavaScript - Generating combinations from n arrays with m elements
我进行了改编,这是结果:
var result = 0;
function combination(parts,N){
var parts_normalize = []
while (N--) parts_normalize.push(parts)
result = parts_normalize.reduce((a, b) => a.reduce((r, v) => r.concat(b.map(w => [].concat(v, w))), []));
console.log(result)
}
这很好,但是,有人可以解释xD我完全迷失了此功能