Angular : comment retirer un item d'un tableau (array) stocké

Dans le langage TypeScript, on interagit avec les tableaux de la même manière qu'avec le langage JavaScript grâce à la classe Array. Pour supprimer un élément d'un tableau, il ne faut pas utiliser l'opérateur "delete" car il ne fonctionne pas avec les tableaux. Il faut faire appel à la méthode "splice()" de la classe Array.

L'opérateur "delete" est utilisé pour supprimer une propriété d'un objet. Alors que l'on serait tenté de l'utiliser également sur un tableau, cela ne fonctionnera pas. Il ne peut être appliqué qu'aux objets et aux propriétés configurables.

monTableau: Array<string> ["Voici", "mon, "beau", "tableau"];
delete monTableau[2];
console.log(monTableau) //Affiche Voici, mon, beau, tableau car l'opérateur delete ne fonctionne pas avec un tableau
var voiture = { 
   couleur: "rouge"
};
delete voiture.couleur
console.log(voiture.couleur) //Affiche undefined car la propriété a été supprimée

Pour supprimer un élément d'un tableau, vous devez faire appel à la méthode "splice()". Elle prend en paramètre l'index du premier élément que l'on souhaite supprimer.

monTableau.splice(2);
console.log(monTableau) //Affiche Voici, mon, tableau

On peut également préciser en deuxième paramètre le nombre d'éléments que l'on souhaite supprimer. Les paramètres suivants, optionnels, sont des éléments qui seront ajoutés à partir de l'index après la suppression.

monTableau.splice(2, 1, "très", "grand")
console.log(monTableau) //Affiche Voici, mon, très, grand, tableau

Si vous ne connaissez pas la position de l'élément dans le tableau, vous pouvez utiliser la méthode "indexOf()" pour le trouver. Vous devez cependant tester la valeur de retour de la fonction "indexOf()". Lorsqu'un élément n'a pas été trouvé, la méthode retourne "-1" et applique cette valeur à la méthode "splice()" qui va supprimer le dernier élément du tableau.

const index: number = monTableau.indexOf("beau");
if (index !== -1) {
    monTableau.splice(index, 1);
}
console.log(monTableau) //Affiche Voici, mon, tableau

AngularJS