如何使用darray从标题中删除对象来解决此问题



我试图在这种情况下从阵列中删除对象,但对我不起作用。另外,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保持在外部循环循环,因为循环试图为每种迭代创建新变量。

最新更新