Supprimer un élément de tableau JS - La bonne méthode ?

Noël Besnard .

28 février 2026

Code JavaScript pour supprimer un élément d'un tableau de cercles. La fonction `addobject` ajoute de nouveaux cercles.

Supprimer un élément d’un tableau en JavaScript paraît banal, mais le bon choix dépend presque toujours du contexte: index connu, valeur connue, besoin de conserver le tableau d’origine ou non. Dans un front-end moderne, cette différence compte vite, parce qu’elle influence la lisibilité, la stabilité de l’état et parfois même les performances. Je vais donc aller droit au but avec les méthodes qui servent vraiment, les cas où elles sont pertinentes et les pièges que je vois le plus souvent en développement web.

Les points à garder en tête avant de choisir la méthode

  • `splice()` supprime par index et modifie le tableau d’origine.
  • `pop()` et `shift()` sont les plus simples pour retirer le dernier ou le premier élément.
  • `filter()` est la meilleure option pour reconstruire un nouveau tableau sans certaines valeurs.
  • `toSpliced()` offre une version immuable plus propre quand l’environnement la supporte.
  • `delete` ne retire pas réellement une case d’un tableau: il laisse un trou.

Supprimer un élément à partir de son index

Quand vous connaissez déjà la position de l’élément, `splice()` reste la méthode la plus directe. Elle supprime à partir d’un index donné, modifie le tableau en place et renvoie un tableau contenant les éléments retirés.

const users = ["Ada", "Linus", "Grace", "Edsger"];

// Supprime un seul élément à l’index 2
const removed = users.splice(2, 1);

console.log(users);   // ["Ada", "Linus", "Edsger"]
console.log(removed); // ["Grace"]

Le deuxième paramètre, deleteCount, est important. Si vous mettez 1, vous retirez un seul élément. Si vous l’omettez, splice() supprime tout ce qui suit l’index de départ, ce qui est rarement ce qu’on veut dans un simple cas de suppression.

const items = [10, 20, 30, 40];
items.splice(1); // retire 20, 30 et 40

Le cas classique, c’est d’utiliser findIndex() pour repérer un élément puis splice() pour le supprimer. Là, je conseille une vérification systématique de -1, sinon vous risquez de retirer le dernier élément par erreur.

const products = [
  { id: 1, name: "Clavier" },
  { id: 2, name: "Souris" },
  { id: 3, name: "Écran" }
];

const index = products.findIndex(product => product.id === 2);

if (index !== -1) {
  products.splice(index, 1);
}

Cette approche est simple, lisible et très pratique dans les listes administratives ou les tableaux de données. Dès qu’on ne travaille plus avec un index stable, il faut cependant passer à une logique différente.

Retirer le premier ou le dernier élément sans surcharger le code

Si l’élément à supprimer est toujours au début ou à la fin, il n’y a aucune raison de compliquer le code. `pop()` retire le dernier élément, `shift()` retire le premier. Les deux modifient le tableau d’origine et renvoient la valeur supprimée.

Méthode Élément supprimé Mutation Retour Usage idéal
pop() Le dernier Oui La valeur retirée Historique, pile, file simple
shift() Le premier Oui La valeur retirée Liste ordonnée, file d’attente
splice() N’importe quel index Oui Un tableau des éléments retirés Suppression ciblée
const queue = ["ticket-1", "ticket-2", "ticket-3"];

const first = queue.shift(); // "ticket-1"
const last = queue.pop();    // "ticket-3"

console.log(queue); // ["ticket-2"]

Je fais une réserve sur shift() quand les tableaux sont gros et que la suppression en tête est répétée. Le moteur doit réindexer les éléments restants, donc le coût n’est pas neutre. Pour de petites listes, ce n’est pas un sujet; pour une file très active, il faut parfois penser autrement, par exemple avec une structure de file plus adaptée.

Quand le point de suppression n’est pas une extrémité, il faut viser la valeur elle-même plutôt que la position.

Supprimer par valeur quand on ne connaît pas l’index

Dans beaucoup d’interfaces, on veut supprimer un élément identifié par son contenu: un identifiant, un nom, un statut. Dans ce cas, `filter()` est souvent la meilleure solution, parce qu’elle construit un nouveau tableau en gardant uniquement les éléments souhaités.

const ids = [10, 20, 30, 20];

// Supprime toutes les occurrences de 20
const without20 = ids.filter(id => id !== 20);

console.log(without20); // [10, 30]

Le point clé ici, c’est que filter() supprime toutes les valeurs qui correspondent à la condition. C’est parfait si vous voulez éliminer un doublon ou une catégorie entière, mais pas si vous cherchez à retirer une seule occurrence précise parmi plusieurs identiques.

Dans ce cas, je préfère combiner findIndex() avec splice() ou toSpliced(). On trouve la première occurrence, puis on retire une seule case.

const tags = ["tech", "ai", "cloud", "ai"];

const index = tags.findIndex(tag => tag === "ai");

if (index !== -1) {
  tags.splice(index, 1);
}

console.log(tags); // ["tech", "cloud", "ai"]

Avec des objets, il faut comparer une propriété métier, pas l’objet entier. Deux objets qui se ressemblent visuellement restent deux références différentes. C’est une erreur fréquente quand on manipule des listes d’utilisateurs, de messages ou de paniers d’achat.

const cart = [
  { id: 1, label: "SSD" },
  { id: 2, label: "RAM" },
  { id: 3, label: "GPU" }
];

const nextCart = cart.filter(item => item.id !== 2);

Quand on doit conserver l’array initial intact, cette approche devient vite plus propre que la mutation directe. C’est justement ce choix entre copie et mutation qui mérite un arbitrage clair.

Choisir entre méthode mutante et version immuable

En pratique, le vrai sujet n’est pas seulement de supprimer un élément: c’est de savoir si vous acceptez de modifier le tableau d’origine. Dans un script court, la mutation est souvent la solution la plus simple. Dans un composant React, un reducer ou une logique d’état partagée, je privilégie presque toujours une version immuable.

Méthode Modifie l’original Lisibilité Cas d’usage
splice() Oui Très bonne pour l’index Logique impérative, tableau local
toSpliced() Non Très bonne État immuable, code moderne
filter() Non Bonne Suppression par valeur ou par règle
pop() / shift() Oui Excellente Dernier ou premier élément
const list = ["a", "b", "c", "d"];

// Version immuable
const nextList = list.toSpliced(1, 1);

console.log(list);     // ["a", "b", "c", "d"]
console.log(nextList); // ["a", "c", "d"]

Si toSpliced() n’est pas disponible dans votre cible, on peut reconstruire une copie manuellement. C’est un peu plus verbeux, mais l’intention reste très claire.

const list = ["a", "b", "c", "d"];
const index = 1;

const nextList = [
  ...list.slice(0, index),
  ...list.slice(index + 1)
];

Je retiens une règle simple: si le tableau est partagé, exposé ou stocké dans un état applicatif, je choisis une version immuable; si le tableau est local et que la mutation n’a aucune conséquence extérieure, splice() reste parfaitement défendable. Une fois ce cadre posé, les erreurs les plus courantes deviennent beaucoup plus faciles à éviter.

Les erreurs qui créent des bugs difficiles à repérer

La suppression d’un élément en JavaScript paraît triviale, mais certains réflexes cassent discrètement la logique. Le plus piégeux reste delete, parce qu’il n’enlève pas l’élément: il laisse un emplacement vide et ne réduit pas la longueur du tableau.

const values = [1, 2, 3];
delete values[1];

console.log(values);      // [1, empty, 3]
console.log(values.length); // 3

Autre erreur classique: oublier de vérifier le résultat de findIndex(). Si l’élément n’existe pas, la fonction renvoie -1. Passé directement à splice(), ce -1 ne signifie pas “rien faire”, mais “viser la fin du tableau”.

Je vois aussi souvent des suppressions qui échouent parce qu’on compare mal les objets. Avec des objets, on ne compare pas une “copie visuelle”, on compare une référence ou une propriété précise. Pour supprimer un utilisateur, un produit ou un message, il faut presque toujours une clé stable comme un id.

  • Évitez delete pour les tableaux, sauf cas très particuliers sur des structures clairsemées.
  • Vérifiez -1 avant d’appeler splice() avec un résultat de recherche.
  • Ne mutuez pas un tableau qui sert ailleurs comme source de vérité.
  • Comparez une propriété plutôt que l’objet complet quand vous manipulez des données métier.
  • Ne confondez pas suppression d’une valeur unique et suppression de toutes les occurrences.

Avec ces garde-fous, le choix de la bonne méthode devient beaucoup plus mécanique et les bugs de liste cessent d’être imprévisibles.

Le réflexe que j’utilise selon le contexte

Si je dois résumer la méthode la plus fiable, je la découpe ainsi: index connu et mutation acceptée, j’utilise splice(); premier ou dernier élément, je prends shift() ou pop(); suppression par valeur, j’utilise filter(); besoin d’une copie immuable à l’index exact, je passe à toSpliced() ou à une reconstruction avec slice().

Ce tri est simple, mais il évite les mauvais réflexes: supprimer trop d’éléments, casser un état partagé ou laisser un trou dans le tableau. Dans la plupart des interfaces web, la bonne décision n’est pas la plus “technique”, c’est celle qui rend le comportement du code évident au prochain lecteur. Et si je devais garder une seule habitude en tête, ce serait celle-ci: vérifier d’abord si je veux modifier l’original, puis choisir la méthode en conséquence.

Questions fréquentes

`splice()` est idéal quand vous connaissez l'index de l'élément à supprimer et que vous acceptez de modifier le tableau original. N'oubliez pas de vérifier l'index (-1) pour éviter des suppressions inattendues.
Pour supprimer un ou plusieurs éléments basés sur leur valeur, `filter()` est souvent la meilleure option. Elle crée un nouveau tableau sans les éléments correspondants, préservant ainsi le tableau original.
`delete` ne supprime pas réellement l'élément d'un tableau, il le remplace par un "trou" (empty slot) et ne modifie pas la longueur du tableau. Cela peut entraîner des comportements inattendus et des bugs difficiles à débusquer.
Privilégiez les méthodes immuables lorsque le tableau est partagé, utilisé dans un état applicatif (comme React), ou si vous avez besoin de conserver le tableau original intact. Cela améliore la prévisibilité et la stabilité de votre code.
Utilisez `shift()` pour supprimer le premier élément et `pop()` pour le dernier. Ces deux méthodes modifient le tableau original et sont très efficaces pour ces cas spécifiques.

Évaluer l'article

Moyenne: 0.0 / 5 · 0 évaluations

Tags

supprimer un element d'un tableau js supprimer élément tableau javascript enlever élément tableau js retirer valeur d'un tableau javascript supprimer par index tableau js
Autor Noël Besnard
Noël Besnard
Je suis Noël Besnard, un analyste de l'industrie passionné par les domaines de la technologie, notamment le web, l'intelligence artificielle, les réseaux et la sécurité. Avec plus de dix ans d'expérience dans l'analyse des tendances du marché technologique, j'ai acquis une expertise approfondie qui me permet d'explorer les innovations et les défis auxquels notre monde numérique est confronté. Mon approche consiste à simplifier des données complexes et à fournir une analyse objective, ce qui me permet de rendre les sujets techniques accessibles à tous. Je m'engage à offrir des informations précises et à jour, en vérifiant rigoureusement les faits pour garantir la fiabilité de chaque article que je publie. Mon objectif est d'aider les lecteurs à naviguer dans cet univers en constante évolution, en leur fournissant les outils nécessaires pour comprendre les enjeux technologiques contemporains.

Commentaires (0)

Ajouter un commentaire