arrays - TypeScript:如果不存在则添加到数组,如果存在则删除
问题描述
使用 TypeScript切换数组中的项目的最佳方法是什么。
切换我的意思是:
- 如果存在,请删除该值。
- 如果不存在,请添加该值。
首选计算量最少的解决方案。
解决方案
下面是一个通用类型安全方法,它“切换”数组中的值。请注意,该方法返回一个新数组,并且不会改变原始数组。
const toggle = <T extends unknown>(array: Array<T>, value: T) => {
const newArray = array.filter((x) => x !== value)
if (newArray.length === array.length) return array.concat(value)
return newArray
}
推荐阅读
- r - “大矩阵”和常规数值矩阵有什么区别?
- angular - 未设置 Angular NGX 数据表数据
- c++ - SDL 将大量像素数据放到屏幕上
- mysql - 从具有多值特定列的多行的相同值中获取一行
- c# - Unity3D中的Random.Range没有给出给定范围内的数字
- sql - 不是 GROUP BY 表达式 - 我应该注意什么?
- sql - 使用 XRMToolbox 的简单查询帮助
- c# - 动态表创建 - ef 核心迁移
- javascript - Mongo node js,如何不返回整个对象文档?
- apache-kafka - 如何捕获流经 MQ -> App -> Kafka -> App -> Kafka 的消息的处理时间