编程语言
首页 > 编程语言> > 如何在JavaScript中查找集合的所有子集?

如何在JavaScript中查找集合的所有子集?

作者:互联网

我需要获取数组的所有可能子集.

说我有这个:

[1, 2, 3]

我怎么得到这个?

[], [1], [2], [1, 2], [2, 3], [1, 3], [1, 2, 3]

我对所有子集感兴趣.有关特定长度的子集,请参阅以下问题:

>查找大小为n:1,2的子集
>查找大小的子集> 1:1

解决方法:

这是一个非常优雅的解决方案,没有循环或递归,只使用map和reduce数组本机函数.

const getAllSubsets = 
      theArray => theArray.reduce(
        (subsets, value) => subsets.concat(
         subsets.map(set => [value,...set])
        ),
        [[]]
      );

console.log(getAllSubsets([1,2,3]));

标签:javascript,subset,powerset
来源: https://codeday.me/bug/20190919/1812029.html