在这种情况下,我试图按标题从数组中删除对象,但它对我不起作用。另外,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);
}
}
}
答案 0 :(得分:2)
只需使用过滤器:
deleteItemfromArray(title = this.item.title) {
this.ListOfUsedMaterials = this.ListOfUsedMaterials
.filter(item => item.title != title);
}
答案 1 :(得分:0)
您可以尝试这样。我们需要从头开始迭代循环,因为这里我们要删除array元素,希望对您有所帮助。
HKS
将声明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);
}
}
}
保留在for循环之外,因为for循环尝试为每次迭代创建新变量。