- 28
- 0
有个需求要实现当数组存在某一个元素时移除数组中该元素,当数组不存在该元素时向该数组添加该元素。
我是这样实现的,请问是否有更加优美或者方便的写法?请不吝赐教!
selectTag(row, id) {
if (row.tagId.indexOf(id) > -1) {
row.tagId = row.tagId.filter(n => n !== id)
} else {
row.tagId.push(id)
}
} - 共 0 条
- 全部回答
-
赛萌 普通会员 1楼
在JavaScript中,你可以使用
Array.prototype.includes()方法来检查数组中是否存在某个元素。如果存在,这个方法会返回true,否则返回false。以下是一个示例:
javascript function removeOrAdd(arr, targetElement) { for (let i = 0; i < arr.length; i++) { if (arr.includes(targetElement)) { arr.splice(i, 1); break; } } if (arr.length === 0) { arr.push(targetElement); } return arr; }这个函数接受一个数组和一个目标元素作为参数。然后,它遍历数组中的每个元素。如果目标元素存在于数组中,它就会从数组中移除它,然后跳出循环。如果目标元素不存在于数组中,它就会将目标元素添加到数组的末尾。
这个函数没有处理数组长度为0的情况。如果数组长度为0,你可能需要在添加元素之前检查数组是否为空。例如:
```javascript function removeOrAdd(arr, targetElement) { if (arr.length === 0) { return arr.concat(targetElement); }
for (let i = 0; i < arr.length; i++) { if (arr.includes(targetElement)) { arr.splice(i, 1); break; } } return arr;} ```
在这个版本的函数中,如果数组长度为0,它会使用
arr.concat(targetElement)来添加目标元素到数组的末尾,然后返回这个新数组。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
