[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/splice [Back]  [Original]

Array : mthode splice() - JavaScript | MDN

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 English Always switch to English

Array : mthode splice()

Baseline Large disponibilit

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 mthode splice() des instances de Array modifie le contenu d'un tableau en supprimant ou remplaant des lments existants et/ou en ajoutant de nouveaux lments en place.

Pour crer un nouveau tableau avec un segment supprim et/ou remplac sans modifier le tableau d'origine, utilisez toSpliced(). Pour accder une partie d'un tableau sans le modifier, consultez slice().

Dans cet article

Exemple interactif

const months = ["Jan", "Mars", "Avril", "Juin"];
months.splice(1, 0, "Fv");
// Insre  l'indice 1
console.log(months);
// Rsultat attendu : Array ["Jan", "Fv", "Mars", "Avril", "Juin"]

months.splice(4, 1, "Mai");
// Remplace 1 lment  l'indice 4
console.log(months);
// Rsultat attendu : Array ["Jan", "Fv", "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)

Paramtres

start

L'indice (commenant zro) partir duquel commencer modifier le tableau, converti en entier.

  • Un indice ngatif compte rebours depuis la fin du tableau si -array.length <= start < 0, on utilise start + array.length.
  • Si l'indice start est infrieur -array.length, on utilise 0.
  • Si l'indice start est suprieur ou gal array.length, aucun lment ne sera supprim, mais la mthode se comportera comme une fonction d'ajout, ajoutant autant d'lments que fourni.
  • Si l'indice start est omis (et que splice() est appel sans argument), rien n'est supprim. Cela diffre du passage de undefined, qui est converti en 0.
deleteCount Facultatif

Un entier indiquant le nombre d'lments supprimer partir de l'indice start.

Si le paramtre deleteCount est omis, ou si sa valeur est suprieure ou gale au nombre d'lments aprs la position indique par l'indice start, alors tous les lments de l'indice start la fin du tableau seront supprims. Cependant, si vous souhaitez passer un paramtre itemN, vous devez passer Infinity comme valeur de deleteCount pour supprimer tous les lments aprs l'indice start, car un undefined explicite est converti en 0.

Si le paramtre deleteCount vaut 0 ou une valeur ngative, aucun lment n'est supprim. Dans ce cas, vous devez spcifier au moins un nouvel lment (voir ci-dessous).

item1, , itemN Facultatif

Les lments ajouter au tableau, partir de l'indice start.

Si vous ne spcifiez aucun lment, splice() ne fera que supprimer des lments du tableau.

Valeur de retour

Un tableau contenant les lments supprims.

Si un seul lment est supprim, un tableau contenant cet unique lment est retourn.

Si aucun lment n'est supprim, un tableau vide est retourn.

Description

La mthode splice() est une mthode mutante. Elle peut modifier le contenu de this. Si le nombre d'lments insrer diffre du nombre d'lments supprims, la proprit length du tableau sera galement modifie. En mme temps, elle utilise [Symbol.species] pour crer une nouvelle instance de tableau retourner.

Si la portion supprime est un tableau creux, le tableau retourn par splice() sera galement creux, avec les indices correspondants vides.

La mthode splice() est gnrique. Elle attend seulement que la valeur de this possde une proprit length et des proprits cls entires. Bien que les chanes de caractres soient aussi assimilables des tableaux, cette mthode ne leur est pas adapte, car les chanes sont immuables.

Exemples

Supprimer 0 lment avant l'indice 2 et insrer 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 lment supprim

Supprimer 0 lment avant l'indice 2 et insrer 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 lment supprim

Supprimer 0 lment l'indice 0 et insrer ange

splice(0, 0, ...lments) insre des lments au dbut du tableau comme unshift().

js
const myFish = ["clown", "mandarin", "esturgeon"];
const removed = myFish.splice(0, 0, "ange");

// myFish vaut ["angel", "clown", "mandarin", "sturgeon"]
// aucun lment supprim

Supprimer 0 lment au dernier indice et insrer esturgeon

splice(array.length, 0, ...lments) insre des lments la fin du tableau comme push().

js
const myFish = ["ange", "clown", "mandarin"];
const removed = myFish.splice(myFish.length, 0, "esturgeon");

// myFish vaut ["angel", "clown", "mandarin", "esturgeon"]
// aucun lment supprim

Supprimer 1 lment 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 lment l'indice 2 et insrer 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 lments partir de l'indice 0 et insrer perroquet , anmone et bleu

js
const myFish = ["ange", "clown", "trompette", "esturgeon"];
const removed = myFish.splice(0, 2, "perroquet", "anmone", "bleu");

// myFish vaut ["perroquet", "anmone", "bleu", "trompette", "esturgeon"]
// removed vaut ["angel", "clown"]

Supprimer 2 lments partir de l'indice 2

js
const myFish = ["perroquet", "anmone", "bleu", "trompette", "esturgeon"];
const removed = myFish.splice(2, 2);

// myFish vaut ["perroquet", "anmone", "esturgeon"]
// removed vaut ["bleu", "trompette"]

Supprimer 1 lment 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 lments 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"]

Utiliser splice() sur des tableaux creux

La mthode splice() prserve le caractre 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]

Utiliser splice() sur des objets qui ne sont pas des tableaux

La mthode splice() lit la proprit length de this. Elle met ensuite jour les proprits cls entires et la proprit length si ncessaire.

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' }

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-array.prototype.splice

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page