Javascript中设置和设置操作

Set and Set Operations in Javascript

本文关键字:设置 操作 Javascript      更新时间:2023-09-26

我正在寻找设置和设置操作在Javascript的交集,联合和差异,而不是不得不手动编写它们。下面是等效的Java代码:

    Set<Integer> toMerged = new HashSet<Integer>(to);
    toMerged.addAll(memory);
    Set<Integer> toFiltered = new HashSet<Integer>(toMerged);
    Set<Integer> memoryFiltered = new HashSet<Integer>(toMerged);
    toFiltered.retainAll(lookupSet);
    memoryFiltered.removeAll(lookupSet);

在上面的代码中看到,我正在寻找等效的addAll, retainAll和removeAll方法在Javascript中的Set实现。谢谢你的真知灼见

不幸的是,指定的交集、并集和差异操作在当前的Javascript Set实现中不可用。
但是,在Set类的MDN页面上,您可以找到可能的实现。

function union(setA, setB) {
  const _union = new Set(setA);
  for (const elem of setB) {
    _union.add(elem);
  }
  return _union;
}
function intersection(setA, setB) {
  const _intersection = new Set();
  for (const elem of setB) {
    if (setA.has(elem)) {
      _intersection.add(elem);
    }
  }
  return _intersection;
}
function difference(setA, setB) {
  const _difference = new Set(setA);
  for (const elem of setB) {
    _difference.delete(elem);
  }
  return _difference;
}