Clone um Array em JavaScript
-
Clone um array existente usando a função
values()
em JavaScript -
Clone um array usando a função
concat()
em JavaScript -
Clone um array usando a função
slice()
em JavaScript - Clonar um array usando um loop em JavaScript
-
Clone um array usando a função
map()
em JavaScript
Este tutorial irá discutir como clonar um array existente usando as seguintes funções em JavaScript: values()
, concat()
, slice()
, loop e map()
.
Clone um array existente usando a função values()
em JavaScript
Para clonar um array existente, podemos usar a função values()
em JavaScript. Este comando cria outra matriz com os mesmos valores do array fornecida. Por exemplo, vamos criar um array e cloná-lo usando a função values()
. Veja o código abaixo.
var ArrA = [1, 2, 3];
var ArrB = Object.values(ArrA);
console.log(ArrB)
Resultado:
[1, 2, 3]
Também podemos testar o desempenho desta função usando a função Date()
. A função Date()
retorna a hora atual em milissegundos. Por exemplo, vamos criar um array 1000 por 1000 e cloná-lo usando a função values()
e verificar seu desempenho usando a função Date()
. Veja o código abaixo.
num = 1000 * 1000;
TimeStart = +new Date();
ArrA = Array(num);
ArrB = Object.values(ArrA);
console.log(new Date() - TimeStart, 'ms');
Resultado:
19 ms
Este teste é executado no navegador Chrome, mas pode mudar de acordo com seu sistema e navegador. Você pode usar este método para verificar o desempenho de diferentes funções.
Clone um array usando a função concat()
em JavaScript
Também podemos usar a função concat()
para clonar um array existente em JavaScript. Esta função concatena um array com outro array para que possamos criar um novo concatenando um array vazio com o existente. Por exemplo, vamos criar um array e cloná-lo usando a função concat()
. Veja o código abaixo.
var ArrA = [1, 2, 3];
var ArrB = [];
ArrB = ArrB.concat(ArrA);
console.log(ArrB)
Resultado:
[1, 2, 3]
Também podemos testar o desempenho da função concat()
usando a função Date()
. A função Date()
retorna a hora atual em milissegundos. Por exemplo, vamos criar um array 1000 por 1000 e cloná-lo usando a função concat()
e verificar seu desempenho usando a função Date()
. Veja o código abaixo.
num = 1000 * 1000;
TimeStart = +new Date();
ArrA = Array(num);
var ArrB = [];
ArrB = ArrB.concat(ArrA);
console.log(new Date() - TimeStart, 'ms');
Resultado:
12 ms
Como você pode observar na saída, leva 12 milissegundos para clonar um array de 1000 por 1000 usando a função concat()
.
Clone um array usando a função slice()
em JavaScript
Também podemos usar a função slice()
para clonar um array em JavaScript. Esta função retorna os elementos selecionados ou valores de um array existente e os salva em outra matriz. Por exemplo, vamos criar um array usando um array existente com a função slice()
. Veja o código abaixo.
var ArrA = [1, 2, 3];
var ArrB = [];
ArrB = ArrA.slice();
console.log(ArrB)
Resultado:
[1, 2, 3]
Também podemos testar o desempenho da função slice()
usando a função Date()
. A função Date()
retorna a hora atual em milissegundos. Podemos registrar o tempo antes e depois da operação de clonagem para verificar o tempo gasto por esta função. Por exemplo, vamos criar um array 1000 por 1000 e cloná-lo usando a função slice()
e verificar seu desempenho usando a função Date()
. Veja o código abaixo.
num = 1000 * 1000;
TimeStart = +new Date();
ArrA = Array(num);
var ArrB = ArrA.slice();
console.log(new Date() - TimeStart, 'ms');
Resultado:
14 ms
Na saída, leva quatorze milissegundos para clonar um array de 1000 por 1000 usando a função slice()
.
Clonar um array usando um loop em JavaScript
Também podemos usar um loop para clonar um array existente. Precisamos copiar cada elemento de um array para outro usando um loop. Por exemplo, vamos usar um loop while
para clonar um array existente. Veja o código abaixo.
var ArrA = [1, 2, 3];
var ArrB = [];
var i = ArrA.length;
while (i--) {
ArrB[i] = ArrA[i];
}
console.log(ArrB)
Resultado:
[1, 2, 3]
Também podemos testar o desempenho deste método usando a função Date()
; este comando retorna a hora atual em milissegundos. Vamos verificar o desempenho desse método usando um array de 1000 por 1000. Veja o código abaixo.
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');
Resultado:
125 ms
Como você pode notar na saída, leva 125 milissegundos para clonar um array de 1000 por 1000 usando um loop while
.
Clone um array usando a função map()
em JavaScript
Para clonar um array existente, também podemos usar a função map()
em JavaScript. Este comando cria outro array chamando uma função para cada elemento do array existente. Por exemplo, vamos criar um array usando um array existente usando a função map()
. Veja o código abaixo.
var ArrA = [1, 2, 3];
var ArrB = ArrA.map(function(i) {
return i
});
console.log(ArrB)
Resultado:
[1, 2, 3]
Também podemos testar o desempenho da função map()
usando a função Date()
. Vamos verificar o desempenho dessa função em um array de 1000 por 1000. Veja o código abaixo.
num = 1000 * 1000;
TimeStart = +new Date();
ArrA = Array(num);
ArrB = ArrA.map(function(i) {
return i
});
console.log(new Date() - TimeStart, 'ms');
Resultado:
25 ms
Com base na saída, leva 25 milissegundos para clonar um array de 1000 por 1000 usando a função map()
.