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
Exemple
#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)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
#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 positionstart.
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 utilisezfilter().
Entrées associées
#- slice() vs splice()slice() copie un fragment du tableau sans modifier l’original, tandis que splice() supprime, insère ou remplace des éléments en place, en mutant le tableau.
- Array.prototype.slice()Renvoie une copie d’une portion du tableau, sans modifier l’original.
- Array.prototype.findIndex()Renvoie l’indice du premier élément qui remplit la condition, ou -1.
- Array.prototype.filter()Crée un nouveau tableau avec les éléments pour lesquels la fonction a renvoyé true.
- Array.prototype.push()Ajoute des éléments à la fin du tableau et renvoie sa nouvelle longueur.
- Array.prototype.toSpliced()Supprime, insère ou remplace des éléments dans une copie du tableau. L’original reste inchangé.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.