Skip to main content

difference

A function that returns a new array containing only the unique values from the first array that are not present in the second array.

By default, comparison is performed only for primitive values. An iteratee function can be provided to transform each element before comparison.


Code​

🔗 View source code


Benchmark​

  • hz: Operations per second
  • mean: Average response time (ms)

Default​

NamehzmeanPerformance
modern-kit/difference9,251,611.330.0001fastest
lodash/difference4,113,377.610.0002slowest
  • modern-kit/difference
    • 2.25x faster than lodash/difference

with iteratee​

NamehzmeanPerformance
modern-kit/difference11,133,900.990.0001fastest
lodash/differenceBy3,211,808.450.0002slowest
  • modern-kit/difference
    • 3.47x faster than lodash/differenceBy

Interface​

typescript
const difference: <T, U = T>(
firstArr: T[] | readonly T[],
secondArr: T[] | readonly T[],
iteratee?: ((item: T) => U) | undefined
) => T[];

Usage​

Basic Usage​

typescript
import { difference } from '@modern-kit/utils';

const arr1 = [1, 2, 3, 4];
const arr2 = [2, 4];

difference(arr1, arr2); // [1, 3]

Iteratee Usage​

typescript
import { difference } from '@modern-kit/utils';

const arr1 = [
{ id: 1, name: 'john' },
{ id: 2, name: 'dylan' },
{ id: 3, name: 'modern' },
{ id: 4, name: 'gromit' },
];
const arr2 = [
{ id: 2, name: 'john' },
{ id: 4, name: 'gromit' },
];

difference(arr1, arr2, (item) => item.id);
/*
[
{ id: 1, name: 'john' },
{ id: 3, name: 'modern' },
]
*/