toggle
基础用法
如果列表中已存在与条件匹配的项目,则将其删除。如果不存在,则将其添加。
import { toggle } from 'radash'
const gods = ['ra', 'zeus', 'loki']
toggle(gods, 'ra') // => [zeus, loki]toggle(gods, 'vishnu') // => [ra, zeus, loki, vishnu]
toggle(list, item, identity)
您可以传递一个可选的toKey函数来确定非原始值的身份。在处理更复杂的数据类型时很有帮助。
import { toggle } from 'radash'
const ra = { name: 'Ra' }const zeus = { name: 'Zeus' }const loki = { name: 'Loki' }const vishnu = { name: 'Vishnu' }
const gods = [ra, zeus, loki]
toggle(gods, ra, g => g.name) // => [zeus, loki]toggle(gods, vishnu, g => g.name) // => [ra, zeus, loki, vishnu]
toggle(list, item, identity, options)
默认情况下,如果项目不存在,toggle会将其附加到末尾。如果您需要将其前置,可以在选项参数中覆盖strategy。
import { toggle } from 'radash'
const gods = ['ra', 'zeus', 'loki']
toggle(gods, 'vishnu', g => g, { strategy: 'prepend' }) // => [vishnu, ra, zeus, loki]