Les tableaux viennent avec beaucoup de méthodes. Pour faciliter les choses, dans ce chapitre, ils ont été divisés en groupes.
Ajouter/Supprimer des éléments
Nous connaissons déjà des méthodes qui ajoutent et suppriment des éléments au début ou à la fin :
arr.push(...items)– ajoute des éléments à la fin,arr.pop()– supprime un élément à la fin,arr.shift()– supprime un élément au début,arr.unshift(...items)– ajouter des éléments au début.
En voici quelques autres.
splice
Comment supprimer un élément du tableau ?
Les tableaux sont des objets, nous pouvons donc utiliser delete :
let arr = ["I", "go", "home"];
delete arr[1]; // supprime "go"
alert( arr[1] ); // undefined
// maintenant arr = ["I", , "home"];
alert( arr.length ); // 3
L’élément a été supprimé, mais le tableau a toujours 3 éléments, on peut voir que arr.length == 3
C’est normal, car delete obj.key supprime une valeur par la clé. C’est tout ce que ça fait. C’est donc parfait pour les objets. Mais pour les tableaux, nous souhaitons généralement que le reste des éléments se déplace et occupe la place libérée. Nous nous attendons à avoir un tableau plus court maintenant.
Des méthodes spéciales doivent donc être utilisées.
La méthode arr.splice est un couteau suisse pour les tableaux. Elle peut tout faire : ajouter, supprimer et remplacer des éléments.
La syntaxe est la suivante :
arr.splice(start[, deleteCount, elem1, ..., elemN])
Il a modifié arr à partir de l’index start : supprime les éléments deleteCount puis insère elem1, ..., elemN à leur place. Renvoie le tableau des éléments supprimés.
Cette méthode est facile à comprendre avec des exemples.
Commençons par la suppression :
let arr = ["I", "study", "JavaScript"];
arr.splice(1, 1); // À partir de l'index 1 supprime 1 élément
alert( arr ); // ["I", "JavaScript"]
Facile, non ? À partir de l’index 1, il a supprimé 1 élément.
Dans l’exemple suivant, nous supprimons 3 éléments et les remplaçons par les deux autres :
let arr = ["I", "study", "JavaScript", "right", "now"];
// supprime les 3 premiers éléments et les remplace par d'autre
arr.splice(0, 3, "Let's", "dance");
alert( arr ) // maintenant ["Let's", "dance", "right", "now"]
Nous pouvons voir ici que splice renvoie le tableau des éléments supprimés :
let arr = ["I", "study", "JavaScript", "right", "now"];
// supprime les 2 premiers éléments
let removed = arr.splice(0, 2);
alert( removed ); // "I", "study" <-- tableau des éléments supprimés
La méthode splice est également capable d’insérer les éléments sans aucune suppression. Pour cela, nous devons définir nombreDeSuppression sur 0 :
let arr = ["I", "study", "JavaScript"];
// de l'index 2
// supprime 0
// et ajoute "complex" et "language"
arr.splice(2, 0, "complex", "language");
alert( arr ); // "I", "study", "complex", "language", "JavaScript"
Ici et dans d’autres méthodes de tableau, les index négatifs sont autorisés. Ils spécifient la position à partir de la fin du tableau, comme ici :