JavaScriptTableaux

Array.prototype.splice()

Supprime, remplace ou insère des éléments sur place, en modifiant le tableau.

Renvoie
Le tableau des éléments supprimés (peut être vide).
Modifie l’original
Oui
Sur cette page

Exemple

#
JavaScript
const list = ['HTML', 'CSS', 'PHP', 'JavaScript']

const removed = list.splice(2, 1)
console.log(removed)
console.log(list)

list.splice(1, 0, 'Sass')
console.log(list)
Console
['PHP']
['HTML', 'CSS', 'JavaScript']
['HTML', 'Sass', 'CSS', 'JavaScript']

Définition et utilisation

#

La méthode splice(start, deleteCount, ...items) modifie le tableau d’origine. À partir de l’indice start, elle supprime deleteCount éléments et insère à leur place les nouveaux éléments donnés. Elle renvoie le tableau des éléments supprimés.

En un seul appel, vous pouvez donc supprimer un élément (splice(i, 1)), en insérer un nouveau sans rien supprimer (splice(i, 0, x)), ou remplacer une portion par d’autres valeurs.

Si vous ne voulez pas muter les données, utilisez la méthode plus récente toSpliced(), qui fonctionne de la même façon mais renvoie un nouveau tableau.

Syntaxe

#
Syntaxe
array.splice(start)
array.splice(start, deleteCount)
array.splice(start, deleteCount, item1, item2, …)

Paramètres

#
  • start

    nombre

    Indice à partir duquel les changements commencent. Un indice négatif compte depuis la fin.
  • deleteCount

    optionnel

    Nombre d’éléments à supprimer. Omis, cela supprime tout jusqu’à la fin.
  • item1…itemN

    optionnels

    Éléments à insérer à la position start.

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Pour supprimer un élément selon une condition, filter() est souvent préférable : il ne mute pas le tableau.
  • Ne supprimez pas d’éléments avec splice() dans une boucle qui avance depuis le début, car les indices se décalent. Parcourez depuis la fin, ou utilisez filter().

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.