我正尝试删除一个有角度的列表,但它给我发送了一个错误-有人可以帮我吗?
ERROR TypeError: _this.data.recipe.ingredientList.delete is not a function
at add-recipe.component.ts:110
at Array.forEach (<anonymous>)
at AddRecipeComponent.push../src/app/components/HomePage/dialog/add-recipe/add-recipe.component.ts.AddRecipeComponent.saveEdition (add-recipe.component.ts:109)
at Object.eval [as handleEvent] (AddRecipeComponent.html:87)
at handleEvent (core.js:10251)
at callWithDebugContext (core.js:11344)
at Object.debugHandleEvent [as handleEvent] (core.js:11047)
at dispatchEvent (core.js:7710)
at core.js:8154
at HTMLButtonElement.<anonymous> (platform-browser.js:988)
ts中的代码
this.ingr = this.data.recipe.ingredientList;
this.data.recipe.ingredientList.forEach(element => {
this.data.recipe.ingredientList.delete(element);
});
答案 0 :(得分:0)
您有两个选择:
1:您可以重置阵列,假设这是一个阵列
this.data.recipe.ingredientList = []
2:如果要从数组中删除元素,则可以使用foreach的index参数,因为您正试图从数组中删除元素。这只是为了纠正您的方法,如果满足您的需求,请使用第一个选项。
this.ingredientList.forEach((element, index) => {
this.ingredientList.splice(index,1);
});
答案 1 :(得分:0)
'delete' is not a function : Because there's no delete function on javascript array
要删除Array对象中的元素,可以使用splice()或filter()预定义的javascript函数
下面是使用filter()的示例:
countyCode = [1,2,3,4,5,6];
console.log(countyCode.filter( element => {return element !== 5}));
答案 2 :(得分:0)
1)首先,您必须交叉检查已声明的IngredientList变量是否为数组。如果它不是数组,那么您将无法使用数组函数。
2)另外,删除不是数组函数。要从数组中删除/删除元素,可以使用拼接功能。
this.ingredientList.forEach(i => {
const index = this.ingredientList.indexOf(i)
this.ingredientList.splice(index,1);
})