Array.prototype.with în JavaScript

Returnează o copie a tabloului în care elementul de la o poziție este înlocuit.

Sintaxă
tablou.with(indice, valoareNoua)

Ce face Array.prototype.with

with este varianta fără efecte secundare a lui tablou[indice] = valoare: originalul rămâne la fel, iar copia are valoarea nouă pe poziția cerută. Acceptă indici negativi.

Dacă indicele este în afara tabloului, aruncă RangeError, nu adaugă elemente noi.

Parametri

Parametru Descriere
indice Poziția înlocuită. Negativ: de la sfârșit.
valoareNoua Valoarea pusă pe acea poziție.

Ce returnează

Un tablou nou.

Exemple

Exemplul 1: Înlocuirea unei valori

const scoruri = [10, 20, 30];

console.log(scoruri.with(1, 25));
console.log(scoruri.with(-1, 0));
console.log(scoruri);
try {
  scoruri.with(5, 1);
} catch (eroare) {
  console.log(eroare.name);
}

Rezultat

[ 10, 25, 30 ]
[ 10, 20, 0 ]
[ 10, 20, 30 ]
RangeError

Greșeli frecvente

  • Folosești with ca să adaugi un element la sfârșit. Merge doar pentru poziții existente; pentru adăugare folosește [...tablou, valoare].

Comenzi înrudite

  • Array.prototype.toSpliced: Returnează o copie a tabloului cu elemente șterse, înlocuite sau inserate, fără să modifice originalul.
  • Array.prototype.at: Returnează elementul de la o poziție; cu indice negativ numără de la sfârșitul tabloului.
  • ... (spread): Desface un tablou sau un obiect în elementele lui. Folosit pentru copii și combinări.