difference()
function difference<T>(array1, array2): T[];
Defined in: array/difference.ts:30
计算两个数组的差异,返回仅存在于第一个数组中且不在第二个数组中的元素 元素比较使用严格相等运算符 (===),因此对象仅在引用相同时被视为相等 结果数组保留元素在原数组中的出现顺序
Type Parameters
| Type Parameter | Description |
|---|---|
T | 数组元素的类型 |
Parameters
| Parameter | Type | Description |
|---|---|---|
array1 | T[] | 源数组,从中筛选差异元素 |
array2 | T[] | 比较数组,用于判断元素是否应被排除 |
Returns
T[]
新数组,包含所有仅存在于 array1 中的元素(保留原顺序)
Examples
difference([0, 1, 2], [2, 3, 4]);
// 返回 [0, 1](基础类型比较)
difference(['a', 'b', 'c'], ['b', 'd']);
// 返回 ['a', 'c'](字符串比较)
difference([1, 2, 2, 3], [2]);
// 返回 [1, 3](自动去重 array1 中被排除的重复元素)
difference([], [1, 2]); // 返回 [](源数组为空)
difference([1, 2], []); // 返回 [1, 2](比较数组为空)
difference([{ id: 1 }], [{ id: 1 }]);
// 返回 [{ id: 1 }](对象引用不同,视为不同元素)
**Note:** 使用 Array.prototype.includes 实现,因此比较使用严格相等 (===)
**Note:** 结果数组中不会包含 array1 中重复出现但也存在于 array2 中的元素
**Warning:** 不支持对象的深度比较,仅比较引用是否相同