mirror of
https://github.com/toss/es-toolkit.git
synced 2024-11-28 03:34:26 +03:00
3a17ade035
* docs(difference): add Lodash Compatibility * arraylike * #680 update size --------- Co-authored-by: Sojin Park <raon0211@toss.im>
2.3 KiB
2.3 KiB
difference
Computes the difference between two arrays.
This function takes two arrays and returns a new array containing the elements that are present in the first array but not in the second array. It effectively filters out any elements from the first array that also appear in the second array.
Signature
function difference<T>(firstArr: T[], secondArr: T[]): T[];
Parameters
firstArr
(T[]
): The array from which to derive the difference. This is the primary array from which elements will be compared and filtered.secondArr
(T[]
): The array containing elements to be excluded from the first array. Each element in this array will be checked against the first array, and if a match is found, that element will be excluded from the result.
Returns
(T[]
) A new array containing the elements that are present in the first array but not
in the second array.
Examples
import { difference } from 'es-toolkit/array';
const array1 = [1, 2, 3, 4, 5];
const array2 = [2, 4];
const result = difference(array1, array2);
// result will be [1, 3, 5] since 2 and 4 are in both arrays and are excluded from the result.
Lodash Compatibility
Import difference
from es-toolkit/compat
for full compatibility with lodash.
difference
can accept multiple arrays to be compared against the first array.difference
can accept array-like objects as arguments.
import { difference } from 'es-toolkit/compat';
const array1 = [1, 2, 3, 4, 5];
const array2 = [2, 4];
const array3 = [5, 6];
const result = difference(array1, array2, array3);
// result will be [1, 3] since 2, 4, and 5 are in at least one of the arrays and are excluded from the result.
const arrayLike1 = { 0: 1, 1: 2, 2: 3, length: 3 };
const arrayLike2 = { 0: 2, 1: 4, length: 2 };
const result2 = difference(arrayLike1, arrayLike2);
// result2 will be [1, 3] since 2 is in both array-like objects and is excluded from the result.
Performance Comparison
Bundle Size | Performance | |
---|---|---|
es-toolkit | 90 bytes (92.4% smaller) | 9,317,227 times (85% faster) |
lodash-es | 7,958 bytes | 5,030,861 times |