Array.prototype.with()
array.with(index, value)
Renvoie un nouveau tableau dans lequel l’élément à l’indice donné est remplacé par une nouvelle valeur. C’est array[index] = value sans modifier le tableau d’origine.
Le tableau d’origine reste inchangé.
Paramètres
- index – position de l’élément modifié ; un nombre négatif compte depuis la fin (
-1= le dernier). - value – nouvelle valeur de l’élément.
Valeur de retour
Un nouveau tableau avec l’élément modifié.
Exemples
const status = ['ouverte', 'ouverte', 'ouverte'];
console.log(status.with(0, 'traitée'));
console.log(status.with(-1, 'annulée'));
console.log(status);
try {
status.with(5, 'x');
} catch (e) {
console.log(e.name);
}
Résultat :
[ 'traitée', 'ouverte', 'ouverte' ] [ 'ouverte', 'ouverte', 'annulée' ] [ 'ouverte', 'ouverte', 'ouverte' ] RangeError
Points d’attention
- La méthode est récente (ECMAScript 2023). Dans les navigateurs plus anciens, vous obtenez le même résultat avec une copie :
[...array]et la méthode qui modifie le tableau. - Un indice hors du tableau lève
RangeError– contrairement à l’affectationarray[5] = x, qui allonge le tableau.
Prise en charge par les navigateurs
Baseline – largement disponible : dans tous les navigateurs courants depuis juillet 2023, considéré comme largement disponible depuis janvier 2026. Depuis la version : Chrome 110, Firefox 115, Safari 16 ; Node.js 20.0.0. État : octobre 2026 (MDN browser-compat-data).
Voir aussi :
Array.prototype.at()
Array.prototype.toSpliced()
Array.prototype.toSorted()