为了账号安全,请及时绑定邮箱和手机立即绑定

如何优雅实现判断数组存在某个元素就移除该元素不存在就添加该元素?

如何优雅实现判断数组存在某个元素就移除该元素不存在就添加该元素?

慕仙森 2019-03-14 14:15:37
有个需求要实现当数组存在某一个元素时移除数组中该元素,当数组不存在该元素时向该数组添加该元素。我是这样实现的,请问是否有更加优美或者方便的写法?请不吝赐教!selectTag(row, id) {    if (row.tagId.indexOf(id) > -1) {         row.tagId = row.tagId.filter(n => n !== id)    } else {        row.tagId.push(id)    }}
查看完整描述

2 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

有没有更好的方法先不说,你的数组删除元素的方式有待商榷,既然已经调用了indexof方法,就应该用splice方法删除元素,你这样相当于又遍历了一遍数组。


let pos = arr.indexOf(x);

if (pos < 0){

  arr.push(x)

} else {

  arr.splice(pos, 1)


查看完整回答
反对 回复 2019-03-27
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

selectTag(row, id) {

    row.tagId.includes(id) ? row.tagId = row.tagId.filter(n => n !== id) : row.tagId.push(id)

}


查看完整回答
反对 回复 2019-03-27
  • 2 回答
  • 0 关注
  • 3178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信