Javascript 添加和删除具有相同值的项
我正在努力做一些理论上很简单的事情,但我找不到为什么我不能让它工作 我需要将元素添加到空数组中,如果值相同,则删除它们。我已经有一个带有复选框的列表,这些复选框用这些值填充数组。正如您所期望的,我希望在取消选中复选框时从数组中删除该值。就是这样:当我选中时,我想添加值,当我取消选中时,我想删除相同的值 我试过使用Javascript 添加和删除具有相同值的项,javascript,html,vue.js,Javascript,Html,Vue.js,我正在努力做一些理论上很简单的事情,但我找不到为什么我不能让它工作 我需要将元素添加到空数组中,如果值相同,则删除它们。我已经有一个带有复选框的列表,这些复选框用这些值填充数组。正如您所期望的,我希望在取消选中复选框时从数组中删除该值。就是这样:当我选中时,我想添加值,当我取消选中时,我想删除相同的值 我试过使用filter(),find(),甚至splice(),但由于某种原因,我无法使它工作 让我向您展示代码: HTML: {{tag.name} Vue: 方法: methods: {
filter()
,find()
,甚至splice()
,但由于某种原因,我无法使它工作
让我向您展示代码:
HTML:
{{tag.name}
Vue:
方法:
methods: {
selectedTags(tag) {
this.selectedChecksArray.push(tag)
},
当然,它只是不断地在selectedChecksArray
数组上添加标记,尽管由于push()
方法,我选中或取消选中了复选框
如有任何建议,将不胜感激。西娅 您应该检查selectedChecksArray
是否包含所选标记。如果它包含,请将其删除。如果没有,请添加它
selectedTags(标签){
if(此.selectedChecksArray.includes(标记)){
this.selectedChecksArray.splice(this.selectedChecksArray.indexOf(标记),1)
}否则{
此.selectedChecksArray.push(标记)
}
}
你需要检查selectedChecksArray
的内容,你需要编辑你的selectedTags
功能,除非你让它这样做,否则它不会按你的要求去做。你会发现在这里运行的可重用代码明显减少了。感谢baymax,它工作起来很有魅力。我缺少includes()
。我已经把它标为正确的问题了。再次感谢!
methods: {
selectedTags(tag) {
this.selectedChecksArray.push(tag)
},