我使用lodash将某项插入到数组(如果不存在),然后将其删除(如果存在),有点“切换”(toggling)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
我的代码如下所示:
var items = ['a', 'b', 'c'];
var itemToToggle = 'a';
if (_.includes(items, itemToToggle)) {
_.pull(items, itemToToggle)
}
else {
items.push(itemToToggle)
}
这似乎还不够完善。
理想情况下,我可以简化为类似
_.toggle(items, itemToToggle)
的内容吗? 最佳答案
另一种方法是使用lodash的xor
var items = ['a', 'b', 'c'];
var itemToToggle = 'a';
new_array = _.xor(items, [itemToToggle])
return new_array // ['b', 'c']
如果该项目不存在,它将添加该项目,如果存在则将其删除。
它通过比较两个数组(
items
和[itemToToggle]
)并返回一个新的数组来实现此目的,该数组是两个数组的合并,减去重复项。关于javascript - 简化代码 "toggles"数组项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33518524/