跳到主要内容

useArrayFilter

分类
导出大小
133 B
上次更改
3 个月前

响应式的 Array.filter

用法

与多个 ref 组成的数组一起使用

ts
import { 
useArrayFilter
} from '@vueuse/core'
const
item1
=
ref
(0)
const
item2
=
ref
(2)
const
item3
=
ref
(4)
const
item4
=
ref
(6)
const
item5
=
ref
(8)
const
list
= [
item1
,
item2
,
item3
,
item4
,
item5
]
const
result
=
useArrayFilter
(
list
,
i
=>
i
% 2 === 0)
// result.value: [0, 2, 4, 6, 8]
item2
.
value
= 1
// result.value: [0, 4, 6, 8]

与响应式数组一起使用

ts
import { 
useArrayFilter
} from '@vueuse/core'
const
list
=
ref
([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
const
result
=
useArrayFilter
(
list
,
i
=>
i
% 2 === 0)
// result.value: [0, 2, 4, 6, 8]
list
.
value
.
shift
()
// result.value: [2, 4, 6, 8]

类型声明

ts
export type 
UseArrayFilterReturn
<
T
= any> =
ComputedRef
<
T
[]>
/** * Reactive `Array.filter` * * @see https://vueuse.org.cn/useArrayFilter * @param list - the array was called upon. * @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array. * * @returns a shallow copy of a portion of the given array, filtered down to just the elements from the given array that pass the test implemented by the provided function. If no elements pass the test, an empty array will be returned. * * @__NO_SIDE_EFFECTS__ */ export declare function
useArrayFilter
<
T
,
S
extends
T
>(
list
:
MaybeRefOrGetter
<
MaybeRefOrGetter
<
T
>[]>,
fn
: (
element
:
T
,
index
: number,
array
:
T
[]) =>
element
is
S
,
):
UseArrayFilterReturn
<
S
>
export declare function
useArrayFilter
<
T
>(
list
:
MaybeRefOrGetter
<
MaybeRefOrGetter
<
T
>[]>,
fn
: (
element
:
T
,
index
: number,
array
:
T
[]) => unknown,
):
UseArrayFilterReturn
<
T
>

来源

源码文档

贡献者

Anthony Fu
Anthony Fu
SerKo
Robin
IlyaL
Jesse205
Levi (Nguyễn Lương Huy)
Levi (Nguyễn Lương Huy)

更新日志

v13.6.0
d32f8 - refactor: 为所有纯函数添加 @__NO_SIDE_EFFECTS__ 注释 (#4907)
v13.1.0
c1d6e - feat(shared): 确保返回类型存在 (#4659)
v12.8.0
7432f - feat(types): 废弃 MaybeRefMaybeRefOrGetter,转而使用 Vue 的原生类型 (#4636)
v12.3.0
59f75 - feat(toValue): 废弃 @vueuse/shared 中的 toValue,转而使用 Vue 的原生函数
0a9ed - feat!: 放弃对 Vue 2 的支持,优化打包并清理 (#4349)
v11.1.0
71fd1 - 修复:将类型与 Array.prototype.filter 匹配 (#4175)

根据 MIT 许可证发布。