mirror of
https://github.com/toss/es-toolkit.git
synced 2024-12-12 15:17:45 +03:00
cf65b2c601
* chore: add prettierrc * chore: apply format with prettier config * chore: eslint error fix
1.3 KiB
1.3 KiB
differenceWith
Computes the difference between two arrays based on a custom equality function.
This function takes two arrays and a custom comparison function. It returns a new array containing the elements that are present in the first array but not in the second array. The comparison to determine if elements are equal is made using the provided custom function.
Signature
function differenceWith<T>(firstArr: T[], secondArr: T[], areItemsEqual: (x: T, y: T) => boolean): T[];
Parameters
firstArr
(T[]
): The array from which to get the difference.secondArr
(T[]
) :The array containing elements to exclude from the first array.areItemsEqual
((x: T, y: T) => boolean
): A function to determine if two items are equal.
Returns
(T[]
) A new array containing the elements from the first array that do not match any elements in the second array according to the custom equality function.
Examples
import { differenceWith } from 'es-toolkit/array';
const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
const array2 = [{ id: 2 }, { id: 4 }];
const areItemsEqual = (a, b) => a.id === b.id;
const result = differenceWith(array1, array2, areItemsEqual);
// result will be [{ id: 1 }, { id: 3 }] since the elements with id 2 are considered equal and are excluded from the result.