3 usos pragmáticos do método JavaScript Array slice()

Fatia de matriz JavaScriptO Array.prototypeobjeto 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 startfor 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 stopposiçã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 newNumbersarray contém todos os elementos do numbersarray.

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 rgbmatriz contém os três primeiros elementos da colorsmatriz. A matriz de origem colorspermanece 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 argumentsda 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 NodeListem 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 pnós do documento HTML. O resultado deste método é um NodeListobjeto, que é um objeto semelhante a um array. Em seguida, chamamos o slice()método para converter o NodeListobjeto 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.prototypemétodo por meio do array vazio. O efeito é o mesmo daquele que usa Array.prototypediretamente.

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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *