Converter argumentos em um array em JavaScript

Sahil Bhosale 12 outubro 2023
  1. O que é o objeto arguments em JavaScript
  2. Converta o objeto arguments em um array usando parâmetros rest em JavaScript
  3. Converta o objeto arguments em um array usando o método Array.from() em JavaScript
  4. Converta o objeto arguments em um array usando Array literals em JavaScript
Converter argumentos em um array em JavaScript

O que é o objeto arguments em JavaScript

Os arguments são um objeto que está presente em todas as funções. Quaisquer que sejam os parâmetros que você passa para uma função em JavaScript, esses parâmetros são armazenados dentro dessa lista de argumentos na forma de um objeto. As chaves deste objeto são números começando do zero. Para acessar os valores presentes dentro do objeto arguments, podemos usar essas chaves.

Este objeto de arguments pode ser usado como um array, mas não suporta as funções JavaScript como forEach, sort, filter e map. Portanto, se você deseja usar essas funções com o objeto de argumentos, deve converter todo esse objeto em um array.

O objeto arguments pode ser convertido em um array de muitas maneiras diferentes. Vamos nos concentrar nas formas mais populares, como usar os parâmetros rest, array.from() e literais de array. Vamos discutir cada um deles em detalhes.

Converta o objeto arguments em um array usando parâmetros rest em JavaScript

O parâmetro rest permite que uma função aceite um número variável de argumentos como entrada. É representado por ...args. Aqui, no lugar de args, você pode dar qualquer nome e os pontos triplos ... são conhecidos como o operador de propagação.

Agora, sempre que você passar ...args como um parâmetro para uma função, isso converterá o objeto de argumentos em um array, e agora você pode acessar o objeto de argumentos usando o nome args.

function func(...args) {
  console.log(args);
  console.log(args[0]);
}

func(1, 2, 3);

Resultado:

[1, 2, 3]
1

Neste exemplo, passamos os parâmetros 1,2,3 como um argumento para uma função func(). Como usamos o operador rest, obteremos o objeto arguments na forma de um array. E agora podemos usar vários métodos, como classificar ou filtrar neste array.

Converta o objeto arguments em um array usando o método Array.from() em JavaScript

Outra maneira de converter o objeto de argumentos em um array é usar o método Array.from(). Aqui, temos que passar o objeto argumentos dentro do método from(), dando-nos um array. Você pode armazenar a matriz resultante em uma variável ou até mesmo acessar diretamente os elementos dentro dessa matriz.

function func() {
  console.log(Array.from(arguments));
  console.log(Array.from(arguments)[0]);
}

func(1, 2, 3);

Resultado:

[ 1, 2, 3 ]
1

Também pegamos o mesmo exemplo, mas a única diferença é que estamos usando Array.from() e passando o objeto arguments em vez de usar um operador rest. Você pode usar a indexação de array, como Array.from (argumentos) [0] para acessar os elementos individuais. Isso retornará o primeiro elemento do array.

Converta o objeto arguments em um array usando Array literals em JavaScript

Um array literals é uma lista que consiste em zero ou mais elementos que começam com o número de índice zero. Em array literals, os elementos são colocados entre colchetes []. Aqui, cada elemento pode ser acessado com a ajuda de seu número de índice.

function func() {
  let args = [].slice.call(arguments);

  console.log(args);
  console.log(args[2]);
}

func(1, 2, 3);

Resultado:

[ 1, 2, 3 ]
3

Para converter o objeto de argumentos em um array, primeiro pegamos um array vazio. Nesse array, chamamos o método slice() usando o método call(). Agora o método slice() irá iterar sobre o objeto que é passado. Nesse caso, é o objeto arguments e, em seguida, anexará todos os elementos dentro do objeto ao array vazio. No final, vamos armazenar o resultado disso dentro de uma variável, args.

Visto que esta variável agora contém todos os elementos que o objeto arguments costumava conter, você pode acessar cada elemento com seu número de índice apropriado usando a variável args.

Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

Artigo relacionado - JavaScript Array