Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Objets natifs standards
  5. Array
  6. splice()

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

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().

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

js
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'indicestart est inférieur à-array.length, on utilise0.
  • Si l'indicestart est 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'indicestart est omis (et quesplice() est appelé sans argument), rien n'est supprimé. Cela diffère du passage deundefined, qui est converti en0.
deleteCountFacultatif

Un entier indiquant le nombre d'éléments à supprimer à partir de l'indicestart.

Si le paramètredeleteCount est 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 passerInfinity comme valeur dedeleteCount pour supprimer tous les éléments après l'indicestart, car unundefined explicite estconverti en0.

Si le paramètredeleteCount vaut0 ou 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'indicestart.

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 »

js
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 »

js
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().

js
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().

js
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

js
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 »

js
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 »

js
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

js
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

js
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

js
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.

js
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.

js
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

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2026 Movatter.jp