我们有一个数组 ` [5,1,6] `,我们要生成所有的子组合 ` [ [ 5 ], [ 5, 1 ], [ 5, 1, 6 ], [ 5, 6 ], [ 1 ], [ 1, 6 ], [ 6 ] ] `,针对任意数组,该如何求出它的所有子组合呢?
/**
* @param {number[]} nums
* @return {number}
*/
var subset = function (nums) {
let len = nums.length
function bt(start, arr) {
if (start >= len) return []
let subset = []
for (let i = start; i < len; i++) {
let n = nums[i]
let one = [...arr, n]
subset.push(one)
subset.push(...bt(i + 1, one))
}
return subset
}
let subset = bt(0, [])
console.log(subset)
};