我需要获取数组的所有可能子集.
说我有这个:
[1, 2, 3]
我怎么得到这个?
[], [1], [2], [1, 2], [2, 3], [1, 3], [1, 2, 3]
我对所有子集感兴趣.有关特定长度的子集,请参阅以下问题:
解决方法:
这是一个非常优雅的解决方案,没有循环或递归,只使用map和reduce数组本机函数.
const getAllSubsets =
theArray => theArray.reduce(
(subsets, value) => subsets.concat(
subsets.map(set => [value,...set])
),
[[]]
);
console.log(getAllSubsets([1,2,3]));