有个需求要实现当数组存在某一个元素时移除数组中该元素,当数组不存在该元素时向该数组添加该元素。我是这样实现的,请问是否有更加优美或者方便的写法?请不吝赐教!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)
}
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
selectTag(row, id) {
row.tagId.includes(id) ? row.tagId = row.tagId.filter(n => n !== id) : row.tagId.push(id)
}
添加回答
举报
0/150
提交
取消