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,将会从原数组中被删除。

发布了3 篇原创文章 · 获赞 0 · 访问量 159

猜你喜欢

转载自blog.csdn.net/weixin_45780818/article/details/104647587
今日推荐