Array.prototype.splice()

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. Si nbASupprimer est supérieur au nombre d'éléments restants dans le tableau après début, tous les éléments de dé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", "blue"]
// removed est ["trumpet", "surgeon"]

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.

Voir aussi

  • push / pop pour ajouter/supprimer des éléments en fin de tableau
  • unshift / shift pour ajouter/supprimer des éléments en début de tableau
  • concat qui renvoie un nouveau tableau résultat de la concaténation d'un tableau avec un autre tableau ou d'autres valeurs

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, CLEm, teoli, tregagnon, WSH, goofy_bz
 Dernière mise à jour par : SphinxKnight,