J'essaie de supprimer une liste en angulaire mais cela m'envoie une erreur - quelqu'un peut-il m'aider s'il vous plaît?
this.ingr = this.data.recipe.ingredientList;
this.data.recipe.ingredientList.forEach(element => {
this.data.recipe.ingredientList.delete(element);
});
code dans ts
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)
3 Réponses :
Vous avez deux options:
1: Vous pouvez simplement réinitialiser le tableau, en supposant qu'il s'agit d'un tableau
this.ingredientList.forEach((element, index) => {
this.ingredientList.splice(index,1);
});
2: Si vous souhaitez supprimer des éléments d'un array, vous pouvez utiliser le paramètre index de foreach, car vous essayez de supprimer un élément du tableau. Celui-ci est juste pour corriger votre approche, veuillez utiliser la première option si cela répond à vos besoins.
this.data.recipe.ingredientList = []
countyCode = [1,2,3,4,5,6]; console.log(countyCode.filter( element => {return element !== 5}));Pour supprimer un élément dans un objet Array, vous pouvez utiliser la fonction javascript prédéfinie splice () ou filter ()
Voici un exemple d'utilisation de filtre ():
'delete' is not a function : Because there's no delete function on javascript array
1) tout d'abord, vous devez vérifier si la variable ingrédientList déclarée est un tableau ou non. S'il ne s'agit pas d'un tableau, vous ne pouvez pas utiliser les fonctions de tableau.
2) De plus, la suppression n'est pas une fonction de tableau. pour supprimer / supprimer un élément du tableau, vous pouvez utiliser la fonction splice.
this.ingredientList.forEach(i => {
const index = this.ingredientList.indexOf(i)
this.ingredientList.splice(index,1);
})
le paramètre i est en fait l'élément, vous devriez obtenir les paramètres (element, i) puis utiliser i
Je suppose qu'ingrédientList n'est pas un tableau mais un objet.
On dirait que vous voulez effacer la liste, dans ce cas, vous pouvez simplement faire
this.data.recipe.ingredient List = []@JulienGabriel mais alors
.foreachgénérerait également une erreurs'il s'agit d'un tableau, essayez la méthode de suppression en utilisant la fonction splice ().
@aomerk Difficile à dire selon l'échantillon donné. Peut-être y a-t-il une attrape qui l'enveloppe ...
@JulienGabriel btw, existe-t-il même une méthode
.delete ()? je veux dire soit pour un objet, soit pour un tableau