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

Tester rapidement

  • La console js de "Développeur Web > Ardoise JavaScript (Maj + F4)"
  • Le Try it yourself