我试图在这种情况下从阵列中删除对象,但对我不起作用。另外,Additem工作正常
addItem() {
console.log(this.item.title + ' ' + this.item.quantity);
this.ListOfUsedMaterials.push({ title: this.item.title, quantity: this.item.quantity});
this.item.title = "";
this.item.quantity = "";
}
//delete from array by title
deleteItem() {
console.log("ID ARTIKLA: ", this.item.title);
for (var i=0; i < this.ListOfUsedMaterials.length; i++) {
if (this.ListOfUsedMaterials[i]["title"] == this.item.title) {
this.ListOfUsedMaterials.splice(i, 1);
}
}
}
只需使用过滤器:
deleteItemfromArray(title = this.item.title) {
this.ListOfUsedMaterials = this.ListOfUsedMaterials
.filter(item => item.title != title);
}
您可以这样尝试。我们需要从最后迭代循环,因为在这里我们删除了数组元素,希望它可以帮助您。
deleteItem() {
console.log("ID ARTIKLA: ", this.item.title);
var i = 0;
for (i; i < this.ListOfUsedMaterials.length - 1; --i) {
if (this.ListOfUsedMaterials[i]["title"] == this.item.title) {
this.ListOfUsedMaterials.splice(i, 1);
}
}
}
将声明i
保持在外部循环循环,因为循环试图为每种迭代创建新变量。