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.