Skip to content

xorBy

根据给定函数转换每个元素后的值,创建一个只包含两个数组中的一个数组中存在的元素的新数组。

typescript
const result = xorBy(arr1, arr2, mapper);

参考

xorBy(arr1, arr2, mapper)

当您想根据特定标准比较两个数组的元素并求对称差集时,请使用 xorBy。用映射函数转换每个元素后,创建一个只存在于两个数组之一的元素的新数组。

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

// 根据对象的id求对称差集。
xorBy([{ id: 1 }, { id: 2 }], [{ id: 2 }, { id: 3 }], obj => obj.id);
// Returns: [{ id: 1 }, { id: 3 }]

// 根据字符串长度求对称差集。
xorBy(['apple', 'banana'], ['grape', 'cherry', 'apple'], str => str.length);
// Returns: [] (所有长度都重复)

映射函数结果相同的元素被视为一个。

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

// 映射函数结果相同的元素被视为一个。
xorBy([1, 2, 3, 4], [3, 4, 5, 6], n => n % 3);
// Returns: [] (所有余数都重复)

参数

  • arr1 (readonly T[]): 要比较的第一个数组。
  • arr2 (readonly T[]): 要比较的第二个数组。
  • mapper ((item: T) => U): 将每个元素转换为可比较值的函数。

返回值

(T[]): 返回根据映射函数的结果计算的对称差集的新数组。

采用 MIT 许可证发布。