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’affectation array[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()