JS代码片段-如何判断一个数组是否是另一个数组的超集

        超集是指一个包含另一个集合的所有元素(甚至可能更多)的集合。集合不考虑重复项,可以使用Set来保证所有元素的唯一性。然后,将Array.prototype.every() 于 Set.prototype.has() 结合起来检查所有元素。

        如果要判断是否是子集,只要将参数顺序交换一下就可以了。请注意,您可以使用此函数处理任何类型的可迭代对象,而不仅仅是数组。

const superset = (a, b) => {
  const sA = new Set(a), sB = new Set(b);
  return [...sB].every(v => sA.has(v));
};

const subset = (a, b) => superset(b, a);

superset([1, 2, 3, 4], [1, 2, 2]); // true
superset([1, 2, 3, 4], [1, 3, 5]); // false

subset(new Set([1, 2]), new Set([1, 2, 3, 4])); // true
subset(new Set([1, 5]), new Set([1, 2, 3, 4])); // false

这里有精选优质开源项目与资源,帮助开发者快速检索开源项目,以及提升知识技能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农界的小蜜蜂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值