Converter argumentos em um array em JavaScript
-
O que é o objeto
arguments
em JavaScript -
Converta o objeto
arguments
em um array usando parâmetrosrest
em JavaScript -
Converta o objeto
arguments
em um array usando o métodoArray.from()
em JavaScript -
Converta o objeto
arguments
em um array usandoArray literals
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 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