O Array.prototype
objeto fornece o slice()
método que permite extrair elementos do subconjunto de um array e adicioná-los ao novo array. Neste tutorial, mostraremos os usos práticos do slice()
método de array JavaScript.
Introdução ao método JavaScript Array slice()
O slice()
método aceita dois parâmetros opcionais como segue:
slice(start, stop);
Ambos os parâmetros start
e stop
são opcionais.
O start
parâmetro determina o índice baseado em zero no qual iniciar a extração. Se start
for undefined
, slice()
começa em 0
.
O stop
parâmetro, como o próprio nome indica, é um índice baseado em zero no qual finalizar a extração. O slice()
método extrai até stop-1
. Isso significa que o slice()
método não inclui o elemento na stop
posição do novo array. Se você omitir o stop
parâmetro, o slice()
método usará o comprimento do array para o stop
parâmetro.
O slice()
retorna um novo array que contém os elementos do array original. É importante ter em mente que o slice()
método realiza a cópia superficial dos elementos apenas para o novo array. Além disso, não altera a matriz de origem.
Clonar uma matriz
O slice()
é usado para clonar um array conforme mostrado no exemplo a seguir:
var numbers = [1,2,3,4,5];
var newNumbers = numbers.slice();
Linguagem de código: JavaScript ( javascript )
Neste exemplo, o newNumbers
array contém todos os elementos do numbers
array.
Copiar uma parte de um array
O uso típico do slice()
método é copiar uma parte de um array sem modificar o array de origem. Aqui está um exemplo:
var colors = ['red','green','blue','yellow','purple'];
var rgb = colors.slice(0,3);
console.log(rgb); // ["red", "green", "blue"]
Linguagem de código: JavaScript ( javascript )
A rgb
matriz contém os três primeiros elementos da colors
matriz. A matriz de origem colors
permanece intacta.
Converta objetos semelhantes a array em arrays
O slice()
método é usado para converter um objeto semelhante a um array em um array. Por exemplo:
function toArray() {
return Array.prototype.slice.call(arguments);
}
var classification = toArray('A','B','C');
console.log(classification); // ["A", "B", "C"]
Linguagem de código: JavaScript ( javascript )
Neste exemplo, o arguments
da toArray()
função é um objeto semelhante a um array. Dentro da toArray()
função, chamamos o slice()
método para converter o objeto de argumentos em um array.
Cada argumento que passamos para a toArray()
função serão os elementos do novo array.
Outro exemplo típico que você vê com frequência é a conversão de a NodeList
em um array da seguinte maneira:
var p = document.querySelectorAll('p');
var list = Array.prototype.slice.call(p);
Linguagem de código: JavaScript ( javascript )
Neste exemplo, primeiro usamos para document.querySelectorAll()
obter todos os p
nós do documento HTML. O resultado deste método é um NodeList
objeto, que é um objeto semelhante a um array. Em seguida, chamamos o slice()
método para converter o NodeList
objeto em um array.
Às vezes, você vê a seguinte sintaxe:
var list = [].slice.call(document.querySelectorAll('p'));
Linguagem de código: JavaScript ( javascript )
Neste exemplo, instanciamos um array vazio []
e acessamos indiretamente o slice()
método do Array.prototype
método por meio do array vazio. O efeito é o mesmo daquele que usa Array.prototype
diretamente.
Neste tutorial, você aprendeu como usar o slice()
método de array JavaScript para copiar um array inteiro ou um subconjunto e converter um objeto semelhante a um array em um array.