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.

var poissons = ["truite", "saumon", "perche"];
poissons.splice(2, 0, "thon");
// On ajoute "thon" à l'indice 2 (soit la troisième position)
// poissons vaut désormais 
// ["truite", "saumon", "thon", "perche"]

poissons.splice(2, 1);
// On retire 1 élément situé à l'indice 2
// poissons vaut désormais
// ["truite", "saumon", "perche"]


;

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 du 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", "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']

var mesAnimaux = ["cheval", "chien", "chat", "dauphin"];
var enleves = mesAnimaux.splice(-2, 1);

// mesAnimaux vaut ["cheval","chien","dauphin"]
// enleves vaut ["chat"]

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) Edge Internet Explorer Opera Safari
Support simple 1.0 1.0 (1.7 ou moins) (Oui) 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)

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, lespacedunmatin, Elarcis, CLEm, teoli, tregagnon, WSH, goofy_bz
 Dernière mise à jour par : SphinxKnight,