Metodo copyWithin degli array in JavaScript: copiare elementi

Il metodo copyWithin è uno strumento potente che ci consente di copiare o spostare elementi all'interno di un array, senza dover scrivere complesse iterazioni. In questa pagina, esploreremo il metodo copyWithin degli array in JavaScript e mostreremo come utilizzarlo per copiare ed estrarre elementi in modo efficiente.

Il metodo copyWithin è disponibile sugli array in JavaScript ed è utilizzato per copiare un sottoinsieme di elementi all'interno dello stesso array. Questo può essere particolarmente utile quando si desidera sostituire una serie di elementi con una copia di altri elementi all'interno dello stesso array. La sintassi del metodo copyWithin è la seguente:

array.copyWithin(target, start, end);

dove target è l'indice di destinazione in cui iniziare a copiare gli elementi, start è l’indice di partenza da cui iniziare a copiare gli elementi, mentre end è l'indice di fine a cui smettere di copiare gli elementi (escluso).

Esempio di utilizzo del metodo copyWithin con un array di numeri

Di seguito vengono riportati alcuni esempi in cui viene mostrato l’utilizzo del metodo copyWithin degli array in JavaScript.

let numeri = [1, 2, 3, 4, 5];
numeri.copyWithin(0, 3, 5);

console.log(numeri); // Output: [4, 5, 3, 4, 5]

Nell'esempio sopra, il metodo copyWithin copia gli elementi dall'indice 3 all'indice 4 nell'array originale, sovrascrivendo gli elementi dall'indice 0 all'indice 1.

let numeri = [1, 2, 3, 4, 5];
numeri.copyWithin(2, 0, 2);

console.log(numeri); // Output: [1, 2, 1, 2, 5]

Nell'esempio sopra, il metodo copyWithin copia gli elementi dall'indice 0 all'indice 1 nell'indice 2, sovrascrivendo gli elementi precedenti.

Utilizzo del metodo copyWithin con numeri negativi

Gli indici negativi possono essere utilizzati con il metodo copyWithin per fare riferimento agli elementi dall'indice finale all'indice iniziale.

let numeri = [1, 2, 3, 4, 5];
numeri.copyWithin(-2, -3, -2);

console.log(numeri); // Output: [1, 2, 3, 3, 5]

Come copiare in un nuovo array

Se si desidera copiare gli elementi in un nuovo array anziché sovrascrivere l'array originale, è possibile farlo utilizzando il metodo slice insieme al metodo copyWithin.

let numeri = [1, 2, 3, 4, 5];
let nuovoArray = numeri.slice().copyWithin(1, 0, 2);

console.log(nuovoArray); // Output: [1, 1, 2, 4, 5]
console.log(numeri); // Output: [1, 2, 3, 4, 5]

Nell'esempio sopra, il metodo slice crea una copia dell'array originale, che può quindi essere modificato con il metodo copyWithin senza alterare l'array originale.