1
votes

foreach => delete (element) - me montre this.data.recipe.ingredientList.delete n'est pas une fonction

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)


6 commentaires

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 .foreach générerait également une erreur


s'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


3 Réponses :


0
votes

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 = []


0 commentaires

0
votes
 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

0 commentaires

0
votes

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);
}) 


1 commentaires

le paramètre i est en fait l'élément, vous devriez obtenir les paramètres (element, i) puis utiliser i