javascript - 如何在 JavaScript 中查找集合的所有子集? (数组的幂集)

标签 javascript subset powerset

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

假设我有这个:

[1, 2, 3]

我如何得到这个?

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

我对所有子集都感兴趣。对于特定长度的子集,请引用以下问题:

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

最佳答案

这是另一种非常优雅的解决方案,没有循环或递归,仅使用映射和化简数组 native 函数。

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

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

关于javascript - 如何在 JavaScript 中查找集合的所有子集? (数组的幂集),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42773836/

相关文章:

javascript - 多个 id 的滚动功能

javascript - 如何从匿名函数访问对象实例

javascript - 将图像源复制到另一个图像标记多个具有单一功能的实例?

regex - 如何对包含给定单词的句子向量进行子集化

javascript - 使用 BlazeJS 访问文档

algorithm - 生成第 25 个元素集的排列,在计算机上是否可行?

r - 在子集函数和逻辑运算符中使用多个条件

algorithm - 对于具有 N 个成员的集合,每个子集的大小为 1 或 2 的集合分区的数量是多少?

c++ - C++ 中嵌套增强型 for 循环的范围

haskell - 为什么Data.Set没有powerset函数?