VDL Plugin SDK

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 ParameterDescription
TType of elements in the input arrays.

Parameters

ParameterTypeDescription
arr1readonly T[]The first array.
arr2readonly T[]The second array.
areElementsEqual(item1, item2) => booleanThe 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 }]