6.7 Vider un tableau
Vous savez maintenant supprimer un élément d'un tableau, mais comment vider entièrement un tableau ? Plusieurs solutions existent, chacune avec ses cas d'usage.
Solution 1 : réassigner à un nouveau tableau
La plus simple : on réassigne la variable à []. Cela ne fonctionne évidemment qu'avec let (pas const). Inconvénient : l'ancien tableau reste en mémoire si d'autres variables le référencent encore.
let numbers = [1, 2, 3];
let another = numbers; // another référence le même tableau
numbers = []; // numbers pointe vers un nouveau tableau
console.log(another); // [1, 2, 3] — toujours là !
Solution 2 : numbers.length = 0
Définir la propriété length à 0 tronque le tableau en place. Toutes les références au tableau d'origine voient le tableau vidé.
numbers.length = 0;
console.log(another); // [] — vidé aussi
Solution 3 : splice
On utilise splice en partant de l'index 0 et en supprimant numbers.length éléments :
numbers.splice(0, numbers.length);
Solution 4 : boucle pop
On peut aussi appeler pop en boucle tant qu'il reste des éléments. Cette solution est correcte fonctionnellement mais déconseillée : sur un tableau d'un million d'entrées, on déclenche un million d'appels de méthode. Le coût en performance est inutile face aux trois autres solutions.
while (numbers.length > 0) numbers.pop();
Laquelle choisir
Si aucune autre variable ne référence votre tableau, la solution 1 (réassignation) est la plus claire. Si d'autres variables pointent vers le tableau d'origine et doivent voir le vidage, utilisez la solution 2 (length = 0) : simple, efficace, prend en compte toutes les références.
En résumé
Cette leçon explore les différentes méthodes pour vider complètement un tableau en JavaScript. Quatre solutions sont présentées : réaffecter le tableau à un nouveau tableau vide, définir la propriété length à zéro, utiliser la méthode splice(), ou appeler pop() en boucle. Chaque approche comporte des avantages et des limitations selon le contexte et les références existantes au tableau.
Points clés
- Solution 1 : Réaffecter le tableau à un nouveau tableau vide (fonctionne seulement si aucune autre variable ne pointe vers le tableau d'origine)
- Solution 2 : Définir length = 0 (la meilleure approche car elle vide le tableau peu importe le nombre de références)
- Solution 3 : Utiliser la méthode splice() pour supprimer tous les éléments en partant du premier index
- Solution 4 : Boucler avec pop() pour supprimer les éléments un par un (peu recommandé pour les grands tableaux)
- Les variables pointant vers l'ancien tableau conservent la référence après réaffectation du tableau d'origine
- La gestion mémoire JavaScript supprime les objets qui n'ont plus de références
Questions fréquentes
Quelle est la meilleure méthode pour vider un tableau en JavaScript ?
Définir la propriété length = 0 est la solution recommandée car elle vide le tableau efficacement indépendamment du nombre de références à ce tableau, contrairement à la réaffectation qui crée un nouvel objet en mémoire.
Pourquoi ne pas simplement réaffecter le tableau à un nouveau tableau vide ?
La réaffectation crée un nouvel objet en mémoire, donc toutes les autres variables qui pointaient vers le tableau d'origine conserveront l'ancienne référence et ne seront pas vidées.
Pourquoi n'est-il pas recommandé de vider un tableau avec une boucle pop() ?
Avec de grands tableaux contenant par exemple un million d'éléments, appeler pop() en boucle a un coût de performance important comparé aux autres solutions beaucoup plus simples et rapides.