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.