如何用es6 set实现交差并集

1.set用法

Set 实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。

  • 操作方法:

    add(value):添加某个值,返回Set结构本身。
    delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
    has(value):返回一个布尔值,表示该值是否为Set的成员。
    clear():清除所有成员,没有返回值。

  • 遍历方法:

    keys():返回键名的遍历器
    values():返回键值的遍历器
    entries():返回键值对的遍历器
    forEach():使用回调函数遍历每个成员
    由于 Set 结构没有键名,只有键值(或者说键名和键值是同一个值)

2.并交差集demo

        let a = new Set([1, 2, 3]);
        let b = new Set([4, 3, 2]);
    // 并集
        let union = new Set([...a, ...b]);
        // Set {1, 2, 3, 4}
        console.log(Array.from(union));
    // 交集
        let intersect = new Set([...a].filter(x => b.has(x)));
        // set {2, 3}
        console.log(Array.from(intersect));
    // 差集
        let difference = new Set([...a].filter(x => !b.has(x)));
        // Set {1}
        console.log(Array.from(difference));

注:Array.from()返回数组类型。

如果您对es6的概念还不是非常的清晰,请移步,谢谢!

    原文作者:zhanzhan_wu
    原文地址: https://segmentfault.com/a/1190000012901176
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞