javascript - 将集合数组合并为单个集合

标签 javascript

如果我有一组集合,将这些集合组合成一个集合的最佳方法是什么?

假设我有这个数组:
const array = [new Set([1, 2, 3]), new Set([4, 5, 6]), new Set([7, 8, 9])]
我将如何操作此数组以生成具有与以下相同输出的单个 Set:
new Set([1,2,3,4,5,6,7,8,9])
该数组具有任意数量的任意大小的集合。

最佳答案

最简单的就是最好的:

let result = new Set;
for (const set of array)
    for (const element of set)
        result.add(element);

或者,如果您想使用构造函数,我会使用立即调用的生成器函数来创建迭代器:
const result = new Set(function* () {
    for (const set of array)
        yield* set;
}());

当然你也可以声明一个reusable functional-minded generator function为了这:
function* flatten(iterable) {
    for (const inner of iterable)
        for (const element of inner)
            yield element;
}
const result = new Set(flatten(array));

关于javascript - 将集合数组合并为单个集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48657421/

相关文章:

javascript - 将 .click() 应用于 li 元素时应使用什么选择器?

javascript - 如何使用链接标签

javascript - 在 ASP.NET 和 jQuery 中定位服务器控件

javascript - 即使在使用 setTimeOut 之后,setState 也会立即更新

javascript - HTML/PHP/JS/MYSQL -- 如何通过表单将相当大的 DIV 内容传递给 MySQL?

javascript - ui 路由器嵌套 View 条件

javascript - 如何/最好的方法来创建一个二维数组来存储整数,JQuery/javascript

javascript - Electron:防止 DOM 中的 <style> 标签加载

javascript - 从数据库获取图像时 Fancybox 无法工作(php)

javascript - 我可以触发点击事件onload吗