mirror of
https://github.com/toss/es-toolkit.git
synced 2024-12-19 05:51:56 +03:00
cf65b2c601
* chore: add prettierrc * chore: apply format with prettier config * chore: eslint error fix
36 lines
1.3 KiB
Markdown
36 lines
1.3 KiB
Markdown
# 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
|
|
|
|
```typescript
|
|
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
|
|
|
|
```typescript
|
|
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.
|
|
```
|