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