首页 > 解决方案 > TypeScript:如果不存在则添加到数组,如果存在则删除

问题描述

使用 TypeScript切换数组中的项目的最佳方法是什么。

切换我的意思是:

首选计算量最少的解决方案。

标签: arraystypescript

解决方案


下面是一个通用类型安全方法,它“切换”数组中的值。请注意,该方法返回一个新数组,并且不会改变原始数组。

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
}

推荐阅读