Comment supprimer un élément d'un tableau en JavaScript?

Comment supprimer une valeur spécifique d’un tableau en JavaScript? Par exemple :

array.remove(value);

Trouvez l’index de l’élément du tableau que vous voulez supprimer à l’aide de indexOf, puis supprimez cet index avec splice.

La méthode splice() modifie le contenu d’un tableau en supprimant des éléments existants et/ou en ajoutant de nouveaux éléments.

const tab = [7, 9, 8];

console.log(tab);  // tab = [7, 9, 8]

const index = tab.indexOf(9);
if (index > -1) {
  tab.splice(index, 1); // Le deuxième paramètre signifie qu'il faut supprimer un seul élément
}

console.log(tab);  // tab = [7, 8]

Le deuxième paramètre de splice est le nombre d’éléments à supprimer. Notez que splice modifie le tableau mis en place.

Voir aussi:

Dans l’exemple suivant, on utilise la fonction array.filter(…) pour supprimer les éléments indésirables d’un tableau. Cette fonction ne modifie pas le tableau original et en crée un nouveau.

Supprimer un élément du tableau en utilisant (ECMA Edition 5)

var e = 5

var tab = [4, 1, 5, 8, 9, 6]

tab = tab.filter(function(item) {
    return item !== e
})

console.log(tab)
// [4, 1, 8, 9, 6]

Supprimer un élément du tableau en utilisant (ECMAScript 6)

let e = 5

let tab = [4, 1, 5, 8, 9, 6]

tab = tab.filter(item => item !== e)

console.log(tab)
// [4, 1, 8, 9, 6]

Supprimer plusieurs éléments du tableau en utilisant (ECMAScript 7)

let e = [1, 5, 8]

let tab = [4, 1, 5, 8, 9, 6]

tab = tab.filter(item => !e.includes(item))

console.log(tab)
// [4, 9, 6]

Pour supprimer un élément d’un tableau à l’index i :

tab.splice(i, 1);

Si vous voulez supprimer du tableau chaque élément ayant la valeur n:

for (var i = tab.length - 1; i >= 0; i--) {
   if (tab[i] === n) {
      tab.splice(i, 1);
   }
}

Si vous voulez simplement que l’élément à l’index i n’existe plus, mais que vous ne voulez pas que les index des autres éléments changent :

delete tab[i];

Pour supprimer TOUTES les instances d’un tableau en JavaScript utiliser le code suivant:

function deleteAllInstances(tab, e) {
   for (var i = tab.length; i--;) {
     if (tab[i] === e) tab.splice(i, 1);
   }
}