30秒学会 JavaScript 片段 · 2022年7月17日

30秒学会 JavaScript 片段 – Toggle element in array

Removes an element from an array if it’s included in the array, or pushes it to the array if it isn’t.

  • Use Array.prototype.includes() to check if the given element is in the array.
  • Use Array.prototype.filter() to remove the element if it’s in the array.
  • Use the spread operator (...) to push the element if it’s not in the array.

代码实现

const toggleElement = (arr, val) =>
  arr.includes(val) ? arr.filter(el => el !== val) : [...arr, val];

toggleElement([1, 2, 3], 2); // [1, 3]
toggleElement([1, 2, 3], 4); // [1, 2, 3, 4]

翻译自:https://www.30secondsofcode.org/js/s/toggle-array-element