use-array
Reactive Array.prototype.filter.
| Package | @vizejs/composable/use-array |
| Own the source | vize lib pull composable:use-array |
| Runtime exports | useArrayFilter, useArrayMap, useArrayFind, useArrayReduce, useArraySome, useArrayEvery, useArrayUnique |
| Gzip budget | 1280 B |
Usage
import { useArrayFilter, useArrayMap, useArrayFind, useArrayReduce, useArraySome, useArrayEvery, useArrayUnique } from "@vizejs/composable/use-array";
Runtime contract
| Utility | Category | Stability | SSR | Hydration | Cleanup | Targets | Host globals | Uses |
|---|---|---|---|---|---|---|---|---|
useArrayFilter |
state | experimental | safe | stable | none | web, server, worker, native, desktop, terminal | — | — |
useArrayMap |
state | experimental | safe | stable | none | web, server, worker, native, desktop, terminal | — | — |
useArrayFind |
state | experimental | safe | stable | none | web, server, worker, native, desktop, terminal | — | — |
useArrayReduce |
state | experimental | safe | stable | none | web, server, worker, native, desktop, terminal | — | — |
useArraySome |
state | experimental | safe | stable | none | web, server, worker, native, desktop, terminal | — | — |
useArrayEvery |
state | experimental | safe | stable | none | web, server, worker, native, desktop, terminal | — | — |
useArrayUnique |
state | experimental | safe | stable | none | web, server, worker, native, desktop, terminal | — | — |
API
useArrayFilter
Reactive Array.prototype.filter. A type-guard predicate narrows the element type.
function useArrayFilter<Item, Narrowed extends Item>( list: MaybeRefOrGetter<readonly Item[]>, predicate: (item: Item, index: number, array: readonly Item[]) => item is Narrowed, ): ComputedRef<Narrowed[]>
const active = useArrayFilter(users, (user) => user.active);
useArrayFilter
function useArrayFilter<Item>( list: MaybeRefOrGetter<readonly Item[]>, predicate: ArrayCallback<Item, boolean>, ): ComputedRef<Item[]>
useArrayFilter
function useArrayFilter<Item>( list: MaybeRefOrGetter<readonly Item[]>, predicate: ArrayCallback<Item, boolean>, ): ComputedRef<Item[]>
useArrayMap
Reactive Array.prototype.map.
function useArrayMap<Item, Mapped>( list: MaybeRefOrGetter<readonly Item[]>, mapper: ArrayCallback<Item, Mapped>, ): ComputedRef<Mapped[]>
const names = useArrayMap(users, (user) => user.name);
useArrayFind
Reactive Array.prototype.find. A type-guard predicate narrows the result.
function useArrayFind<Item, Narrowed extends Item>( list: MaybeRefOrGetter<readonly Item[]>, predicate: (item: Item, index: number, array: readonly Item[]) => item is Narrowed, ): ComputedRef<Narrowed | undefined>
const admin = useArrayFind(users, (user) => user.role === "admin");
useArrayFind
function useArrayFind<Item>( list: MaybeRefOrGetter<readonly Item[]>, predicate: ArrayCallback<Item, boolean>, ): ComputedRef<Item | undefined>
useArrayFind
function useArrayFind<Item>( list: MaybeRefOrGetter<readonly Item[]>, predicate: ArrayCallback<Item, boolean>, ): ComputedRef<Item | undefined>
useArrayReduce
Reactive Array.prototype.reduce. With an initial value the result has the accumulator type. Without one, the first item seeds the accumulator and an empty array yields undefined (instead of throwing like reduce).
function useArrayReduce<Item, Accumulator>( list: MaybeRefOrGetter<readonly Item[]>, reducer: ( accumulator: Accumulator, item: Item, index: number, array: readonly Item[], ) => Accumulator, initial: MaybeRefOrGetter<Accumulator>, ): ComputedRef<Accumulator>
const total = useArrayReduce(cart, (sum, line) => sum + line.price, 0);
useArrayReduce
function useArrayReduce<Item>( list: MaybeRefOrGetter<readonly Item[]>, reducer: (accumulator: Item, item: Item, index: number, array: readonly Item[]) => Item, ): ComputedRef<Item | undefined>
useArrayReduce
function useArrayReduce<Item>( list: MaybeRefOrGetter<readonly Item[]>, reducer: (accumulator: unknown, item: Item, index: number, array: readonly Item[]) => unknown, ...initial: readonly [] | readonly [MaybeRefOrGetter<unknown>] ): ComputedRef<unknown>
useArraySome
Reactive Array.prototype.some.
function useArraySome<Item>( list: MaybeRefOrGetter<readonly Item[]>, predicate: ArrayCallback<Item, boolean>, ): ComputedRef<boolean>
const hasErrors = useArraySome(fields, (field) => field.error !== null);
useArrayEvery
Reactive Array.prototype.every.
function useArrayEvery<Item>( list: MaybeRefOrGetter<readonly Item[]>, predicate: ArrayCallback<Item, boolean>, ): ComputedRef<boolean>
const allDone = useArrayEvery(tasks, (task) => task.done);
useArrayUnique
Reactive de-duplication that keeps the first occurrence of each item. Without isSame, items are compared with SameValueZero (like Set) in linear time; with it, pairwise in quadratic time.
function useArrayUnique<Item>( list: MaybeRefOrGetter<readonly Item[]>, isSame?: (left: Item, right: Item) => boolean, ): ComputedRef<Item[]>
const tags = useArrayUnique(allTags);
const people = useArrayUnique(rows, (left, right) => left.id === right.id);