La méthode splice()
modifie le contenu d'un tableau en retirant des éléments et/ou en ajoutant des nouveaux éléments.
Syntaxe
array.splice(début, nbASupprimer[, élem1[, élem2[, ...]]])
Paramètres
début
- L'indice à partir duquel commencer le changement (les numéros commencent à 0). S'il est négatif, le changement commencera d'autant d'éléments à partir de la fin du tableau.
nbASupprimer
- Un entier indiquant le nombre d'anciens éléments à remplacer. Si
nbASupprimer
vaut 0, aucun élément ne sera supprimé. Dans ce cas, il est nécessaire de spécifier au moins un nouvel élément. SinbASupprimer
est supérieur au nombre d'éléments restants dans le tableau aprèsdébut
, tous les éléments dedébut
à la fin du tableau seront supprimés. - Si ce paramètre est absent, par défaut, il vaudra
array.length - début
.
élemN
- Les éléments à ajouter au tableau à partir de
début
. Si vous ne spécifiez pas de nouvel élément, les anciens éléments seront simplement supprimés du tableau.
Valeur de retour
Un tableau contenant les éléments supprimés. Si un seul élément est supprimé, un tableau contenant un unique élément est retourné.
Description
Si vous spécifiez un nombre différent d'éléments à insérer et d'éléments à supprimer, le tableau aura une longueur différente après l'appel de la méthode.
Exemples
Utiliser splice
Le script suivant illustre l'utilisation de splice
:
var myFish = ["angel", "clown", "mandarin", "surgeon"]; // supprime 0 élément à partir de l'index 2, et insère "drum" var removed = myFish.splice(2, 0, "drum"); // myFish est ["angel", "clown", "drum", "mandarin", "surgeon"] // removed est [], aucun élément supprimé // supprime 1 élément à partir de l'index 3 removed = myFish.splice(3, 1); // myFish est ["angel", "clown", "drum", "surgeon"] // removed est ["mandarin"] // supprime 1 élément à partir de l'index 2, et insère "trumpet" removed = myFish.splice(2, 1, "trumpet"); // myFish est ["angel", "clown", "trumpet", "surgeon"] // removed est ["drum"] // supprime 2 éléments à partir de l'index 0, et insère "parrot", "anemone" and "blue" removed = myFish.splice(0, 2, "parrot", "anemone", "blue"); // myFish est ["parrot", "anemone", "blue", "trumpet", "surgeon"] // removed est ["angel", "clown"] // supprime 2 éléments à partir de l'indice 2 removed = myFish.splice(myFish.length - 3, 2); // myFish est ["parrot", "anemone", "surgeon"] // removed est ["blue", "trumpet"] var monPoisson = ['perroquet', 'anémone', 'bleu', 'trompette', 'chirurgien']; // on retire trois éléments à partir de l'indice 2 var retires = monPoisson.splice(2); // monPoisson vaut ['perroquet', 'anémone'] // retires vaut ['bleu', 'trompette', 'chirurgien']
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | Définition initiale. Implémentée avec JavaScript 1.2. |
ECMAScript 5.1 (ECMA-262) La définition de 'Array.prototype.splice' dans cette spécification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Array.prototype.splice' dans cette spécification. |
Standard | |
ECMAScript 2017 Draft (ECMA-262) La définition de 'Array.prototype.splice' dans cette spécification. |
Projet |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | 1.0 | 1.0 (1.7 ou moins) | 5.5 | (Oui) | (Oui) |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |
Rétrocompatibilité
Sous JavaScript 1.2, la méthode splice
retourne l'élément supprimé si seulement un élément est supprimé (nbASupprimer
à 1); autrement la méthode retourne un tableau contenant les éléments supprimés. On notera que le dernier navigateur a avoir utilisé JavaScript 1.2 était Netscape Navigator 4, vous pouvez donc considérer que splice
retourne toujours un tableau.