javascript array supprimer élément
Par PlaceOweb le vendredi, avril 20 2012, 19:51 - Javascript - Lien permanent
En JavaScript, la suppression du premier ou dernier élément d'un tableau (Array) est facile avec ces méthodes :
- shift() (retirer le premier élément d'un tableau)
- pop() (effacer le dernier élément d'un tableau)
Mais comment et avec quelle méthode supprimer un élément (par sa clé/index ou valeur) situé en plein milieu d'un tableau JavaScript ?
- splice() (effacer et ajouter des éléments)
La méthode à utiliser pour supprimer des éléments (intermédiaires) dans un tableau Javascript : Array.splice
Array.splice
- Array.splice() écrase une tranche de tableau
- splice() (effacer et ajouter des éléments)
- splice : Adds and/or removes elements from an array.
PS : à ne pas confondre avec Array.slice()
- Array.slice() retourne une tranche de tableau
- slice() (extraire une partie d'un tableau)
- slice : Extracts a section of an array and returns a new array.
Utilisation de Array.splice
// La suppression d'éléments du tableau var myArray = [22, 37, 58, 69, 100, 101, 102, 103, 104, 105]; myArray.splice(2, 3); // à partir de l'index 2, et supprime 3 éléments console.log(myArray); // [22, 37, 101, 102, 103, 104, 105] // La suppression et remplacement d'éléments du tableau var myArray = [22, 37, 58, 69, 100, 101, 102, 103, 104, 105]; myArray.splice(2, 3, 41, 42, 43); // à partir de l'index 2, et supprime 3 éléments, que l'on remplace par les 0, n arguments (ici 41,42,43) console.log(myArray); // [22, 37, 41, 42, 43, 101, 102, 103, 104, 105]
Voici en JavaScript comment supprimer un (seul) élément d’un tableau (Array) :
function arrayUnsetByValue(array, value){ // efface que la première occurrence pour la valeur array.splice(array.indexOf(value), 1); } function arrayUnsetByIndex(array, index){ array.splice(index, 1); } var myArray = [22, 37, 58, 69, 100, 101, 102, 103, 104, 105]; arrayUnsetByValue(myArray , 100); console.log(myArray); // [22, 37, 58, 69, 101, 102, 103, 104, 105] var myArray = [22, 37, 58, 69, 100, 101, 102, 103, 104, 105]; arrayUnsetByIndex(myArray , 2); console.log(myArray); // [22, 37, 69, 100, 101, 102, 103, 104, 105]
Supprimer un élément dans un tableau JavaScript
Méthode (mauvaise) : delete myArray[indexOfArray]
L'utilisation de l'opérateur delete n'est pas une méthode qui marche pas, car l'élément n'est pas supprimé, mais réinitialisé à : undefined
var myArray = [22, 37, 58, 69, 100, 101, 102, 103, 104, 105]; console.log(delete myArray[2]); console.log(delete myArray); console.log(myArray); // true // false // [22, 37, undefined, 69, 100, 101, 102, 103, 104, 105]
Méthode (non rapide) : copie des éléments du tableau qui nous intéressent dans un nouveau tableau
La méthode du bourin (y compris RAM et CPU) : utilisant un tableau temporaire et de n’y ajouter que les éléments que l’on désire.
Méthode (la bonne) : splice et prototype
Array.prototype.unset = function(val){ var index = this.indexOf(val) if(index > -1){ this.splice(index,1) } } var tab = ['John', 'Paul', 'Georges', 'Ringo']; console.log(tab); // ["John", "Paul", "Georges", "Ringo"] tab.splice(2,1); console.log(tab); // ["John", "Paul", "Ringo"] tab.unset('Paul'); console.log(tab); // ["John", "Ringo"]
Ressources
- Supprimer un élément/index d’un tableau en Javascript
- Javascript - l'objet Array
- Tableau.splice() : Cette méthode ajoute/retire des éléments d'un tableau.
- Tableau.slice() : Cette méthode renvoie un tableau contenant une partie (extraction) des éléments d'un tableau.
- Supprimer une entrée d'un array en javascript
- Pour supprimer tada tu aurais juste à faire array.splice(1,1) ;)
- Et si tu ne connais pas la position de tada : array.splice(array.indexOf('tada'),1)
- Supprimer une ligne dans un array
- delete tableau[index]; //effacera la ligne du tableau !!! Mais celle-ci laisse un “trou” dans le tableau, ce qui peu être génant… !!!
- array - supprimer un élément qui n'est pas le dernier
- Supprimer un élément d'un tableau associatif javascript
Tester rapidement
- La console js de "Développeur Web > Ardoise JavaScript (Maj + F4)"
- Le Try it yourself