我正在使用Vue JS,我有2个不同的数组categories
和items
。每个项目可以属于多个类别,项目是动态生成的,因此最初不在类别数组中关联。然后我解析类别数组以创建包含不同项的表。
出于测试目的,我将项目附加到已安装的vue属性中的相关类别,如下所示:
mounted: function() {
for (let item of this.items) {
for (let category of item.categories) {
this.categories[category - 1].items.push(item)
}
}
}
然后当按下删除按钮时,我触发deleteItem
方法,该方法使用splice从categories
数组和items
数组中删除项目,但我是在那里有一点问题,没有删除正确的项目。
methods: {
deleteItem: function(item) {
for (let category of item.categories) {
this.categories[category - 1].items.splice(this.categories[category - 1].items.indexOf(item, 1))
}
this.items.splice(this.items.indexOf(item, 1))
}
}
请参阅示例Fiddle。任何帮助将不胜感激。
答案 0 :(得分:2)
更改
this.items.splice(this.items.indexOf(item, 1))
到
this.items.splice(this.items.indexOf(item), 1)
以便将1
作为第二个参数传递给splice
。
请注意,您执行两次相同的错误。