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.