// 组合算法结果
function combinationResults(a, m) {
let r = []
if (m <= 0 || m > a.length) {
return r
}
for (let i = 0; i < a.length; i++) {
let t = []
t.push(a[i])
if (m === 1) {
r.push(t)
} else {
let b = a.slice(i + 1)
let c = combinationResults(b, m - 1)
for (let j = 0; j < c.length; j++) {
r.push(t.concat(c[j]))
}
}
}
return r
}
a为数组,把需要组合重组的数都放一个数组中,m为需要的组合的数组长度,例如 a === [1,2,3,4], m === 3,
返回结果为 [1, 2, 3],[1, 2, 4],[1, 3, 4]....等