写个方法找出两个二维数组的差集

205 阅读2分钟

"```markdown

找出两个二维数组的差集

差集是指在两个集合中只存在于其中一个集合中的元素。对于两个二维数组,我们可以通过编写一个方法来找出它们的差集。

方法实现

/**
 * 找出两个二维数组的差集
 * @param {Array} arr1 - 第一个二维数组
 * @param {Array} arr2 - 第二个二维数组
 * @returns {Array} - 差集数组
 */
function findDifference(arr1, arr2) {
  const set1 = new Set(arr1.flat()); // 将第一个二维数组转为一维数组并转为 Set
  const set2 = new Set(arr2.flat()); // 将第二个二维数组转为一维数组并转为 Set

  const difference = [];

  for (const item of set1) {
    if (!set2.has(item)) {
      difference.push(item); // 如果第一个数组的元素不在第二个数组中,则加入差集数组
    }
  }

  return difference;
}

使用示例

const array1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const array2 = [[4, 5, 6], [7, 8, 9]];

const difference = findDifference(array1, array2);
console.log(difference); // [1, 2, 3]

以上代码中,我们首先定义了一个 findDifference 方法,该方法接收两个二维数组 arr1arr2 作为参数,并返回它们的差集数组。我们使用 Set 数据结构来进行元素的唯一性判断。

在方法中,我们先将两个二维数组通过 flat 方法转为一维数组,然后分别转为 Set 数据结构。接着,我们遍历第一个数组的元素,在第二个数组中判断是否存在该元素,如果不存在则将其加入差集数组。最后返回差集数组。

在使用示例中,我们定义了两个二维数组 array1array2,然后调用 findDifference 方法传入这两个数组,并将返回的差集数组打印输出。

通过这个方法,我们可以方便地找出两个二维数组的差集,即只存在于其中一个数组中的元素。