Skip to content

useArrayUnique

Category
Export Size
219 B
Last Changed
3 weeks ago

reactive unique array

Usage

Use with array of multiple refs

ts
import { 
useArrayUnique
} from '@vueuse/core'
const
item1
=
ref
(0)
const
item2
=
ref
(1)
const
item3
=
ref
(1)
const
item4
=
ref
(2)
const
item5
=
ref
(3)
const
list
= [
item1
,
item2
,
item3
,
item4
,
item5
]
const
result
=
useArrayUnique
(
list
)
// result.value: [0, 1, 2, 3]
item5
.
value
= 1
// result.value: [0, 1, 2]

Use with reactive array

ts
import { 
useArrayUnique
} from '@vueuse/core'
const
list
=
reactive
([1, 2, 2, 3])
const
result
=
useArrayUnique
(
list
)
// result.value: [1, 2, 3]
list
.
push
(1)
// result.value: [1, 2, 3]

Use with custom function

ts
import { 
useArrayUnique
} from '@vueuse/core'
const
list
=
reactive
([
{
id
: 1,
name
: 'foo' },
{
id
: 2,
name
: 'bar' },
{
id
: 1,
name
: 'baz' },
]) const
result
=
useArrayUnique
(
list
, (
a
,
b
) =>
a
.
id
===
b
.
id
)
// result.value: [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }]
list
.
push
({
id
: 1,
name
: 'qux' })
// result.value: [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }]

Type Declarations

ts
export type 
UseArrayUniqueReturn
<
T
= any> =
ComputedRef
<
T
[]>
/** * reactive unique array * @see https://vueuse.org/useArrayUnique * @param list - the array was called upon. * @param compareFn * @returns A computed ref that returns a unique array of items. * * @__NO_SIDE_EFFECTS__ */ export declare function
useArrayUnique
<
T
>(
list
:
MaybeRefOrGetter
<
MaybeRefOrGetter
<
T
>[]>,
compareFn
?: (
a
:
T
,
b
:
T
,
array
:
T
[]) => boolean,
):
UseArrayUniqueReturn
<
T
>

Source

SourceDocs

Contributors

Anthony Fu
丶远方
Anthony Fu
SerKo
Robin
IlyaL

Changelog

v13.6.0 on
d32f8 - refactor: add @__NO_SIDE_EFFECTS__ annotations to all pure functions (#4907)
v13.1.0 on
c1d6e - feat(shared): ensure return types exists (#4659)
v12.8.0 on
7432f - feat(types): deprecate MaybeRef and MaybeRefOrGetter in favor of Vue's native (#4636)
v12.3.0 on
59f75 - feat(toValue): deprecate toValue from @vueuse/shared in favor of Vue's native
v12.0.0-beta.1 on
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)
v10.0.0-beta.4 on
4d757 - feat(types)!: rename MaybeComputedRef to MaybeRefOrGetter
0a72b - feat(toValue): rename resolveUnref to toValue
v10.0.0-beta.2 on
c8c30 - feat: add a custom function to deduplicate (#2612)

Released under the MIT License.

FREE WEEKEND
48 Hours of Unlimited Official Vue.js Certification Training
Reserve Your Spot
23-24 August