Skip to content

xorWith

Import from @varavel/vdl-plugin-sdk/utils/arrays.

function xorWith<T>(
   arr1, 
   arr2, 
   areElementsEqual): T[];

Computes the symmetric difference between two arrays using a custom equality function. The symmetric difference is the set of elements which are in either of the arrays, but not in their intersection.

Type Parameters

Type Parameter Description
T Type of elements in the input arrays.

Parameters

Parameter Type Description
arr1 readonly T[] The first array.
arr2 readonly T[] The second array.
areElementsEqual (item1, item2) => boolean The custom equality function to compare elements.

Returns

T[]

An array containing the elements that are present in either arr1 or arr2 but not in both, based on the custom equality function.

Example

// Custom equality function for objects with an 'id' property
const areObjectsEqual = (a, b) => a.id === b.id;
xorWith([{ id: 1 }, { id: 2 }], [{ id: 2 }, { id: 3 }], areObjectsEqual);
// Returns [{ id: 1 }, { id: 3 }]