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éthode splice() des instances de Array modifie le contenu d'un tableau en supprimant ou remplaçant des éléments existants et/ou en ajoutant de nouveaux éléments en place.
Pour créer un nouveau tableau avec un segment supprimé et/ou remplacé sans modifier le tableau d'origine, utilisez toSpliced(). Pour accéder à une partie d'un tableau sans le modifier, consultez slice().
Exemple interactif
const months = ["Jan", "Mars", "Avril", "Juin"];
months.splice(1, 0, "Fév");
// Insère à l'indice 1
console.log(months);
// Résultat attendu : Array ["Jan", "Fév", "Mars", "Avril", "Juin"]
months.splice(4, 1, "Mai");
// Remplace 1 élément à l'indice 4
console.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
start-
L'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
deleteCountFacultatif-
Un 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 est converti 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, …,itemNFacultatif-
Les é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éthode splice() est une méthode mutante. Elle peut modifier le contenu de this. 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 un tableau creux, le tableau retourné par splice() sera également creux, avec les indices correspondants vides.
La méthode splice() est générique. Elle attend seulement que la valeur de this 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 comme unshift().
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 comme push().
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"]
Utiliser splice() sur des tableaux creux
La méthode splice() 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]
Utiliser splice() sur des objets qui ne sont pas des tableaux
La méthode splice() lit la propriété length de this. 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
Chargement…
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()