fn
useArrayUnique
v0.0.15testeddemoReactive 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
TParameters
| Parameter | Type | Description |
|---|---|---|
list | MaybeRefOrGetter<MaybeRefOrGetter<T>[]> | The source array (items can be reactive) |
comparator? | UseArrayUniqueComparatorFn<T> | UseArrayUniqueKeyFn<T> | keyof T | undefined | A 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