js方法判断两个数组的交集、并集和超集

发布时间 2023-05-09 17:20:40作者: 勇敢牛牛20

下面是JS实现数组交集、并集和超集的方法:

1. 交集:即两个数组中相同的元素。可以通过遍历一个数组,判断另一个数组是否包含该元素来确定。

function intersection(arr1, arr2) {
  const result = [];
  for (let i = 0; i < arr1.length; i++) {
    if (arr2.includes(arr1[i])) {
      result.push(arr1[i]);
    }
  }
  return result;
}

2. 并集:即两个数组中所有的不重复元素。可以先合并两个数组,然后去除重复项得到结果。

function union(arr1, arr2) {
  const result = [...arr1, ...arr2];
  return Array.from(new Set(result));
}

3. 超集:即一个数组包含了另一个数组的所有元素。可以先判断两个数组的长度,如果第一个数组比第二个数组长,则不可能为超集。然后遍历第二个数组,判断每个元素是否都在第一个数组中出现过。

function superset(arr1, arr2) {
  if (arr1.length < arr2.length) {
    return false;
  }
  for (let i = 0; i < arr2.length; i++) {
    if (!arr1.includes(arr2[i])) {
      return false;
    }
  }
  return true;
}