js去重并在原数组中删除重复的元素

我们都知道ES6中去重的方法new Set,这里就不多提及,现在有一个场景:我有6个按钮,分别是语文,数学,英语,政治,历史,地理,每一个有对应的id值,现在要把用户选中的科目id传给后台,如果单独使用去重方法,只能去除重复的id,并不能去除用户选中又取消掉的id。
直接上代码,写的比较丑,应该有更好的方法,欢迎留言。。

for (let item of lists) {
      if (
        lists.filter(item2 => {
          return item2 == item;
        }).length > 1
      ) {
        lists = lists.filter(item2 => {
          return item2 != item;
        });
        this.setData({
          list: lists
        })
      }
    }

在此之前,可以先将用户选中的id,push进一个新数组。

if (chooseId) {
      list.push(chooseId)
    }
    var lists = list
    var arr = [];
    for (var i in lists) {
      arr.push(lists[i]);
    }

最后返回的就是用户选中的id,如果选中又取消的id,将会从原数组中被删除。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值