我使用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/

10-13 02:29