美文网首页前端面试题
判断两个 Set 是否相同

判断两个 Set 是否相同

作者: 千茉紫依 | 来源:发表于2019-04-10 18:46 被阅读0次

    Set可以看做是增强型的数组,它内部的重复值会被自动剔除,而且Set中重复的判断标准是根据值,而不是根据引用地址,这一点对于重复对象判别非常友好。Set常用的方法有size、add、delete、has,与数组类似。
    判断两个 Set 是否相同

    方案一:
    const isSameSet = (s1, s2) => {
      if (s1.size !== s2.size) {
        return false;
      }
      return [...s1].every(i => s2.has(i))
    }
    

    这里使用延展符...将Set转化为数组,然后使用数组的every函数来判别是否有重复,every函数对数组每个值执行传入的函数,若全部符合则返回true,否则返回false

    方案二:
    const isSameSet = (set1, set2) => {
        let s = new Set([...set1, ...set2])
        return s.size == set1.size && s.size == set2.size
    }
    

    由两个生成一个新的Set,如果两个Set相等,那么新Set的size必然与两个Set完全一致。

    相关文章

      网友评论

        本文标题:判断两个 Set 是否相同

        本文链接:https://www.haomeiwen.com/subject/ckboiqtx.html