Skip to content
主题色
灰色
夜间模式组件大小小(1)中(2)大(3)组件圆角
none
small
medium
large
full
组件缩放90%95%100%105%110%

intersectionOfSets

ts
function intersectionOfSets(set1: Set<any>, set2: Set<any>): Set<any>

获取两个集合的交集,当支持Set.prototype.intersection时,使用原生方法,否则回退到polyfill

polyfill是创建一个新的集合,遍历数量较小的那个集合来获取交集,而原生是直接调用第一个set的方法。如果你的第一个set使用了Proxy拦截,polyfill和原生实现将可能有区别

目前在Vue中能显著观察到该问题,当第一个set被ref代理后,且当前浏览器支持Set.prototype.intersection,由于Vue暂不支持该方法,调用原生方法将报错,而polyfill正常工作

此问题在以下几个set方法中同样存在

differenceOfSets

获取两个集合的差集,当支持Set.prototype.difference时,使用原生方法,否则回退到polyfill。差集以第一个参数为主,即在第一个集合中而不在第二个集合中的元素

unionOfSets

获取两个集合的并集,当支持Set.prototype.union时,使用原生方法,否则回退到polyfill