Skip to content

intersection

返回两个数组的交集。

该函数接受两个数组并返回一个新数组,该数组包含同时存在于两个数组中的元素。

它有效地过滤掉第一个数组中不在第二个数组中的元素。

签名

typescript
function intersection<T>(firstArr: T[], secondArr: T[]): T[];

参数

  • firstArr (T[]): 要比较的第一个数组。
  • secondArr (T[]): 要比较的第二个数组。

返回值

(T[]) 包含同时存在于两个数组中的元素的新数组。

示例

typescript
const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
const result = intersection(array1, array2);
// 结果将是 [3, 4, 5] 因为这些元素在两个数组中都存在。

Lodash 兼容性

es-toolkit/compat 导入 intersection 以获得与 lodash 的完全兼容性。

  • intersection 可以接受多个类数组对象来查找公共元素。
  • intersection 仅返回唯一元素。
typescript
import { intersection } from 'es-toolkit/compat';

const array1 = [1, 2, 3, 4, 4, 5];
const array2 = [2, 4];
const array3 = [4, 6];
const result = intersection(array1, array2, array3);
// 结果是 [4],因为这个唯一的元素在每个数组中都存在。

const arrayLike1 = { 0: 1, 1: 2, 2: 3, length: 3 };
const arrayLike2 = { 0: 2, 1: 3, length: 2 };
const result2 = intersection(arrayLike1, arrayLike2);
// 结果2是 [2, 3],因为这些元素在两个类数组对象中都存在。