R
fn

useArrayUnique

v0.0.15testeddemo

Reactive de-duplicated array. By default uses `Set` identity (`===`); an optional key of `T`, key extractor (both O(n)), or full comparator (O(n²)) customizes equality. The source array and its items may be reactive. First-seen insertion order is preserved.

Examples

ts
const list = ref([1, 2, 2, 3, 3, 3]);
const uniq = useArrayUnique(list); // [1, 2, 3]
ts
const list = ref([{ id: 1 }, { id: 2 }, { id: 1 }]);
const byId = useArrayUnique(list, 'id'); // [{ id: 1 }, { id: 2 }]
ts
const list = ref([{ id: 1 }, { id: 2 }, { id: 1 }]);
const byKey = useArrayUnique(list, item => item.id); // [{ id: 1 }, { id: 2 }]
ts
const list = ref([1.1, 1.4, 2.2]);
const byFloor = useArrayUnique(list, (a, b) => Math.floor(a) === Math.floor(b)); // [1.1, 2.2]

Demo

Loading demo…

Signatures

ts
export function useArrayUnique<T>(
  list: MaybeRefOrGetter<Array<MaybeRefOrGetter<T>>>,
): UseArrayUniqueReturn<T>;
ts
export function useArrayUnique<T>(
  list: MaybeRefOrGetter<Array<MaybeRefOrGetter<T>>>,
  comparator: keyof T,
): UseArrayUniqueReturn<T>;
ts
export function useArrayUnique<T>(
  list: MaybeRefOrGetter<Array<MaybeRefOrGetter<T>>>,
  comparator: UseArrayUniqueKeyFn<T>,
): UseArrayUniqueReturn<T>;
ts
export function useArrayUnique<T>(
  list: MaybeRefOrGetter<Array<MaybeRefOrGetter<T>>>,
  comparator: UseArrayUniqueComparatorFn<T>,
): UseArrayUniqueReturn<T>;

Type Parameters

T

Parameters

ParameterTypeDescription
listMaybeRefOrGetter<MaybeRefOrGetter<T>[]>The source array (items can be reactive)
comparator?UseArrayUniqueComparatorFn<T> | UseArrayUniqueKeyFn<T> | keyof T | undefinedA custom equality comparator, a key extractor, or a key of `T` to de-duplicate by

Returns

UseArrayUniqueReturn<T>A computed array containing only the first occurrence of each unique element