Clonare un array in JavaScript

Ammar Ali 12 ottobre 2023
  1. Clonare un array esistente utilizzando la funzione values() in JavaScript
  2. Clonare un array utilizzando la funzione concat() in JavaScript
  3. Clonare un array usando la funzione slice() in JavaScript
  4. Clonare un array usando un loop in JavaScript
  5. Clonare un array usando la funzione map() in JavaScript
Clonare un array in JavaScript

Questo tutorial discuterà come clonare un array esistente utilizzando le seguenti funzioni in JavaScript: values(), concat(), slice(), loop e map().

Clonare un array esistente utilizzando la funzione values() in JavaScript

Per clonare un array esistente, possiamo usare la funzione values() in JavaScript. Questo comando crea un altro array con gli stessi valori dell’array dato. Ad esempio, creiamo un array e cloniamolo utilizzando la funzione values(). Vedi il codice qui sotto.

var ArrA = [1, 2, 3];
var ArrB = Object.values(ArrA);
console.log(ArrB)

Produzione:

[1, 2, 3]

Possiamo anche testare le prestazioni di questa funzione usando la funzione Date(). La funzione Date() restituisce l’ora corrente in millisecondi. Ad esempio, creiamo un array 1000 per 1000 e lo cloniamo utilizzando la funzione values() e controlliamo le sue prestazioni utilizzando la funzione Date(). Vedi il codice qui sotto.

num = 1000 * 1000;
TimeStart = +new Date();
ArrA = Array(num);
ArrB = Object.values(ArrA);
console.log(new Date() - TimeStart, 'ms');

Produzione:

19 ms

Questo test viene eseguito sul browser Chrome, ma potrebbe cambiare in base al sistema e al browser. È possibile utilizzare questo metodo per verificare le prestazioni di diverse funzioni.

Clonare un array utilizzando la funzione concat() in JavaScript

Possiamo anche usare la funzione concat() per clonare un array esistente in JavaScript. Questa funzione concatena un array con un altro array in modo che possiamo crearne uno nuovo concatenando un array vuoto con quello esistente. Ad esempio, creiamo un array e lo cloniamo utilizzando la funzione concat(). Vedi il codice qui sotto.

var ArrA = [1, 2, 3];
var ArrB = [];
ArrB = ArrB.concat(ArrA);
console.log(ArrB)

Produzione:

[1, 2, 3]

Possiamo anche testare le prestazioni della funzione concat() usando la funzione Date(). La funzione Date() restituisce l’ora corrente in millisecondi. Ad esempio, creiamo un array 1000 per 1000 e lo cloniamo utilizzando la funzione concat() e controlliamo le sue prestazioni utilizzando la funzione Date(). Vedi il codice qui sotto.

num = 1000 * 1000;
TimeStart = +new Date();
ArrA = Array(num);
var ArrB = [];
ArrB = ArrB.concat(ArrA);
console.log(new Date() - TimeStart, 'ms');

Produzione:

12 ms

Come puoi osservare nell’output, ci vogliono 12 millisecondi per clonare un array 1000 per 1000 usando la funzione concat().

Clonare un array usando la funzione slice() in JavaScript

Possiamo anche usare la funzione slice() per clonare un array in JavaScript. Questa funzione restituisce gli elementi oi valori selezionati di un array esistente e lo salva in un altro array. Ad esempio, creiamo un array utilizzando un array esistente con la funzione slice(). Vedi il codice qui sotto.

var ArrA = [1, 2, 3];
var ArrB = [];
ArrB = ArrA.slice();
console.log(ArrB)

Produzione:

[1, 2, 3]

Possiamo anche testare le prestazioni della funzione slice() usando la funzione Date(). La funzione Date() restituisce l’ora corrente in millisecondi. Possiamo registrare il tempo prima e dopo l’operazione di clonazione per controllare il tempo impiegato da questa funzione. Ad esempio, creiamo un array 1000 per 1000 e lo cloniamo utilizzando la funzione slice() e controlliamo le sue prestazioni utilizzando la funzione Date(). Vedi il codice qui sotto.

num = 1000 * 1000;
TimeStart = +new Date();
ArrA = Array(num);
var ArrB = ArrA.slice();
console.log(new Date() - TimeStart, 'ms');

Produzione:

14 ms

Nell’output, occorrono quattordici millisecondi per clonare un array 1000 per 1000 utilizzando la funzione slice().

Clonare un array usando un loop in JavaScript

Possiamo anche usare un bucle per clonare un array esistente. Dobbiamo copiare ogni elemento da un array all’altro usando un bucle. Ad esempio, usiamo un cicli while per clonare un array esistente. Vedi il codice qui sotto.

var ArrA = [1, 2, 3];
var ArrB = [];
var i = ArrA.length;
while (i--) {
  ArrB[i] = ArrA[i];
}
console.log(ArrB)

Produzione:

[1, 2, 3]

Possiamo anche testare le prestazioni di questo metodo usando la funzione Date(); questo comando restituisce l’ora corrente in millisecondi. Controlliamo le prestazioni di questo metodo utilizzando un array 1000 per 1000. Vedi il codice qui sotto.

num = 1000 * 1000;
TimeStart = +new Date();
ArrA = Array(num);
var ArrB = [];
var i = ArrA.length;
while (i--) {
  ArrB[i] = ArrA[i];
}
console.log(new Date() - TimeStart, 'ms');

Produzione:

125 ms

Come puoi notare nell’output, ci vogliono 125 millisecondi per clonare un array 1000 per 1000 usando un cicli while.

Clonare un array usando la funzione map() in JavaScript

Per clonare un array esistente, possiamo anche usare la funzione map() in JavaScript. Questo comando crea un altro array chiamando una funzione per ogni elemento dell’array esistente. Ad esempio, creiamo un array utilizzando un array esistente utilizzando la funzione map(). Vedi il codice qui sotto.

var ArrA = [1, 2, 3];
var ArrB = ArrA.map(function(i) {
  return i
});
console.log(ArrB)

Produzione:

[1, 2, 3]

Possiamo anche testare le prestazioni della funzione map() usando la funzione Date(). Verifichiamo come si comporta questa funzione rispetto a un array 1000x1000. Vedi il codice qui sotto.

num = 1000 * 1000;
TimeStart = +new Date();
ArrA = Array(num);
ArrB = ArrA.map(function(i) {
  return i
});
console.log(new Date() - TimeStart, 'ms');

Produzione:

25 ms

In base all’output, sono necessari 25 millisecondi per clonare un array 1000 per 1000 utilizzando la funzione map().

Autore: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Articolo correlato - JavaScript Array