Skip to content

differenceWith

根据自定义相等函数计算两个数组之间的差异。

该函数接受两个数组和一个自定义比较函数作为参数。它返回一个新数组,其中包含仅存在于第一个数组中但不在第二个数组中的元素。

判断元素是否相等是使用提供的自定义函数进行的。

签名

typescript
function differenceWith<T>(firstArr: T[], secondArr: T[], areItemsEqual: (x: T, y: T) => boolean): T[];

参数

  • firstArr (T[]): 要获取差异的数组。
  • secondArr (T[]): 包含要从第一个数组中排除的元素的数组。
  • areItemsEqual ((x: T, y: T) => boolean): 用于确定两个项是否相等的函数。

返回值

(T[]) 一个新数组,包含根据自定义相等函数,第一个数组中与第二个数组中任何元素不匹配的元素。

示例

typescript
import { differenceWith } from 'es-toolkit/array';

const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
const array2 = [{ id: 2 }, { id: 4 }];
const areItemsEqual = (a, b) => a.id === b.id;
const result = differenceWith(array1, array2, areItemsEqual);
// 结果将是 [{ id: 1 }, { id: 3 }] 因为具有 id 为 2 的元素被认为是相等的,因此被排除在结果之外。