Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Array : méthode splice()
Baseline Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La méthodesplice() des instances deArray modifie le contenu d'un tableau en supprimant ou remplaçant des éléments existants et/ou en ajoutant de nouveaux élémentsen place.
Pour créer un nouveau tableau avec un segment supprimé et/ou remplacé sans modifier le tableau d'origine, utiliseztoSpliced(). Pour accéder à une partie d'un tableau sans le modifier, consultezslice().
Dans cet article
Exemple interactif
const months = ["Jan", "Mars", "Avril", "Juin"];months.splice(1, 0, "Fév");// Insère à l'indice 1console.log(months);// Résultat attendu : Array ["Jan", "Fév", "Mars", "Avril", "Juin"]months.splice(4, 1, "Mai");// Remplace 1 élément à l'indice 4console.log(months);// Résultat attendu : Array ["Jan", "Fév", "Mars", "Avril", "Mai"]Syntaxe
splice(start)splice(start, deleteCount)splice(start, deleteCount, item1)splice(start, deleteCount, item1, item2)splice(start, deleteCount, item1, item2, /* …, */ itemN)Paramètres
startL'indice (commençant à zéro) à partir duquel commencer à modifier le tableau,converti en entier.
- Un indice négatif compte à rebours depuis la fin du tableau — si
-array.length <= start < 0, on utilisestart + array.length. - Si l'indice
startest inférieur à-array.length, on utilise0. - Si l'indice
startest supérieur ou égal àarray.length, aucun élément ne sera supprimé, mais la méthode se comportera comme une fonction d'ajout, ajoutant autant d'éléments que fourni. - Si l'indice
startest omis (et quesplice()est appelé sans argument), rien n'est supprimé. Cela diffère du passage deundefined, qui est converti en0.
- Un indice négatif compte à rebours depuis la fin du tableau — si
deleteCountFacultatifUn entier indiquant le nombre d'éléments à supprimer à partir de l'indice
start.Si le paramètre
deleteCountest omis, ou si sa valeur est supérieure ou égale au nombre d'éléments après la position indiquée par l'indicestart, alors tous les éléments de l'indicestartà la fin du tableau seront supprimés. Cependant, si vous souhaitez passer un paramètreitemN, vous devez passerInfinitycomme valeur dedeleteCountpour supprimer tous les éléments après l'indicestart, car unundefinedexplicite estconverti en0.Si le paramètre
deleteCountvaut0ou une valeur négative, aucun élément n'est supprimé.Dans ce cas, vous devez spécifier au moins un nouvel élément (voir ci-dessous).item1, …,itemNFacultatifLes éléments à ajouter au tableau, à partir de l'indice
start.Si vous ne spécifiez aucun élément,
splice()ne fera que supprimer des éléments du tableau.
Valeur de retour
Un tableau contenant les éléments supprimés.
Si un seul élément est supprimé, un tableau contenant cet unique élément est retourné.
Si aucun élément n'est supprimé, un tableau vide est retourné.
Description
La méthodesplice() est uneméthode mutante. Elle peut modifier le contenu dethis. Si le nombre d'éléments à insérer diffère du nombre d'éléments supprimés, la propriétélength du tableau sera également modifiée. En même temps, elle utilise[Symbol.species] pour créer une nouvelle instance de tableau à retourner.
Si la portion supprimée est untableau creux, le tableau retourné parsplice() sera également creux, avec les indices correspondants vides.
La méthodesplice() estgénérique. Elle attend seulement que la valeur dethis possède une propriétélength et des propriétés à clés entières. Bien que les chaînes de caractères soient aussi assimilables à des tableaux, cette méthode ne leur est pas adaptée, car les chaînes sont immuables.
Exemples
>Supprimer 0 élément avant l'indice 2 et insérer « tambour »
const myFish = ["ange", "clown", "mandarin", "esturgeon"];const removed = myFish.splice(2, 0, "tambour");// myFish vaut ["angel", "clown", "tambour", "mandarin", "sturgeon"]// removed vaut [], aucun élément suppriméSupprimer 0 élément avant l'indice 2 et insérer « tambour » et « guitare »
const myFish = ["ange", "clown", "mandarin", "esturgeon"];const removed = myFish.splice(2, 0, "tambour", "guitare");// myFish vaut ["angel", "clown", "tambour", "guitare", "mandarin", "sturgeon"]// removed vaut [], aucun élément suppriméSupprimer 0 élément à l'indice 0 et insérer « ange »
splice(0, 0, ...éléments) insère des éléments au début du tableau commeunshift().
const myFish = ["clown", "mandarin", "esturgeon"];const removed = myFish.splice(0, 0, "ange");// myFish vaut ["angel", "clown", "mandarin", "sturgeon"]// aucun élément suppriméSupprimer 0 élément au dernier indice et insérer « esturgeon »
splice(array.length, 0, ...éléments) insère des éléments à la fin du tableau commepush().
const myFish = ["ange", "clown", "mandarin"];const removed = myFish.splice(myFish.length, 0, "esturgeon");// myFish vaut ["angel", "clown", "mandarin", "esturgeon"]// aucun élément suppriméSupprimer 1 élément à l'indice 3
const myFish = ["ange", "clown", "tambour", "mandarin", "esturgeon"];const removed = myFish.splice(3, 1);// myFish vaut ["angel", "clown", "tambour", "esturgeon"]// removed vaut ["mandarin"]Supprimer 1 élément à l'indice 2 et insérer « trompette »
const myFish = ["ange", "clown", "tambour", "esturgeon"];const removed = myFish.splice(2, 1, "trompette");// myFish vaut ["angel", "clown", "trompette", "esturgeon"]// removed vaut ["tambour"]Supprimer 2 éléments à partir de l'indice 0 et insérer « perroquet », « anémone » et « bleu »
const myFish = ["ange", "clown", "trompette", "esturgeon"];const removed = myFish.splice(0, 2, "perroquet", "anémone", "bleu");// myFish vaut ["perroquet", "anémone", "bleu", "trompette", "esturgeon"]// removed vaut ["angel", "clown"]Supprimer 2 éléments à partir de l'indice 2
const myFish = ["perroquet", "anémone", "bleu", "trompette", "esturgeon"];const removed = myFish.splice(2, 2);// myFish vaut ["perroquet", "anémone", "esturgeon"]// removed vaut ["bleu", "trompette"]Supprimer 1 élément à partir de l'indice -2
const myFish = ["ange", "clown", "mandarin", "esturgeon"];const removed = myFish.splice(-2, 1);// myFish vaut ["angel", "clown", "esturgeon"]// removed vaut ["mandarin"]Supprimer tous les éléments à partir de l'indice 2
const myFish = ["ange", "clown", "mandarin", "esturgeon"];const removed = myFish.splice(2);// myFish vaut ["angel", "clown"]// removed vaut ["mandarin", "esturgeon"]Utilisersplice() sur des tableaux creux
La méthodesplice() préserve le caractère creux du tableau.
const arr = [1, , 3, 4, , 6];console.log(arr.splice(1, 2)); // [empty, 3]console.log(arr); // [1, 4, empty, 6]Utilisersplice() sur des objets qui ne sont pas des tableaux
La méthodesplice() lit la propriétélength dethis. Elle met ensuite à jour les propriétés à clés entières et la propriétélength si nécessaire.
const objetSimilaireTableau = { length: 3, unrelated: "foo", 0: 5, 2: 4,};console.log(Array.prototype.splice.call(objetSimilaireTableau, 0, 1, 2, 3));// [ 5 ]console.log(objetSimilaireTableau);// { '0': 2, '1': 3, '3': 4, length: 4, unrelated: 'foo' }Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.prototype.splice> |
Compatibilité des navigateurs
Voir aussi
- Guide des collections indexées
- L'objet global
Array - La méthode
Array.prototype.concat() - La méthode
Array.prototype.push() - La méthode
Array.prototype.pop() - La méthode
Array.prototype.shift() - La méthode
Array.prototype.slice() - La méthode
Array.prototype.toSpliced() - La méthode
Array.prototype.unshift()