Arrays
Um array é uma coleção ordenada de valores. Cada valor é chamado de elemento e cada elemento possui uma posição numérica na matriz, conhecida como índice. Os arrays JavaScript não têm tipo: um elemento do array pode ser de qualquer tipo, e diferentes elementos do mesmo array podem ser de tipos diferentes. Os elementos de um array podem até ser objetos ou outros arrays, o que permite criar estruturas de dados complexas.
Criando arrays
Existem várias maneiras de criar arrays em Javascript:
Literais de array
Array com operador spread (...)
Array.of()eArray.from()Construtor
Array()
Literais
De longe, a maneira mais simples de criar um array é com um literal de array, que é simplesmente uma lista separada por vírgulas de elementos entre colchetes.
let arrayVazio = [];
let arrayDeNumeros = [1,2,3];
let arrayStrings = ['Etc', 'Qualquer'];
let arrayComVariosTipos = ['string', 1, 1.2, { nome: 'Diogo' }];Operador spread (...)
Nas versões mais recentes de Javascript, você pode usar o "operador spread" (...), para incluir os elementos de um array dentro de um literal de array.
let a = [1,2,3]; // a == [ 1, 2, 3 ]
let b = [0, ...a, 4]; // b == [ 0, 1, 2, 3, 4 ]Os três pontos “espalham” o array a de modo que seus elementos se tornem elementos dentro do literal do array que está sendo criado (b). O operador spread é uma ótima maneira de criar "cópias" de um array, por exemplo.
Array.of e Array.from
O método Array.of() cria um novo array com um número variável de argumentos, independentemente do número ou do tipo dos argumentos.
O método Array.from() cria uma nova instância de um Array quando for passado um array ou um objeto que possa iterável como argumento.
Construtor Array()
Quando a função de construtor Array() é chamada com um argumento numérico, ela usa esse argumento como um comprimento de array. Embora esse array tenha uma quantidade pré-determinada de elementos, todos eles são undefined no momento da inicialização.
Lendo e escrevendo em arrays
Você acessa um elemento de um array usando o operador []. Uma referência ao array deve aparecer à esquerda dos colchetes. Uma expressão arbitrária com um valor inteiro não negativo deve estar entre colchetes. Você pode usar essa sintaxe para ler e gravar o valor de um elemento. Exemplos:
Para saber o tamanho de um array, utilizamos sua propriedade length
Adicionando e removendo elementos
Já vimos a maneira mais simples de adicionar elementos a um array: apenas atribuir valores a novos índices. Você também pode usar o método push() para adicionar um ou mais valores ao final de um array.
Um dos métodos mais comuns para remover elementos de um array é usando o método splice. Ele recebe dois argumentos: o primeiro informa o índice (que começa em 0) do início da remoção, e o segundo informa quantos elementos devem ser removidos.
Existem vários métodos de remoção dependendo do cenário que você se encontra, alguns deles são baseados em estruturas de dados (como pilhas, por exemplo). O próprio método splice é ambiguo e pode inclusive adicionar elementos em um array. Esses argumentos do método splice podem ser seguidos por qualquer número de argumentos adicionais que especifiquem elementos a serem inseridos no array, começando na posição especificada pelo primeiro argumento.
Na linha 3 do código acima, os argumentos indicam que splice deve: A partir da posição 0, modificando 0 elementos (nenhum), adicionar o elemento 1. Utilize um terminal de browser para explorar um pouco mais sobre esse método até que ele fique mais claro.
Veja nesse site outros métodos para remover elementos de um array.
Iterando arrays
Nas versões mais modernas de Javascript, a maneira mais fácil de percorrer cada um dos elementos de um array (ou qualquer objeto iterável) é com o loop for/of. Outra boa maneira é com forEach(). Você passa uma função para o método forEach() de uma matriz e forEach() invoca sua função uma vez em cada elemento da matriz.
Usando map, filter e reduce
map, filter e reduceExistem alguns métodos de array que facilitam os laços de repetição e podem ser usados em vários cenários. Vamos tomar como exemplo o seguinte array:
O método map() passa cada elemento do array no qual é invocado para a função que você especifica e retorna um array contendo os valores retornados por sua função. No exemplo abaixo, vamos dobrar o salário de todas as pessoas:
Já o método filter() retorna um novo array contendo um subconjunto dos elementos do array no qual ele é chamado. A função que você passa para ele deve ser o que chamamos de predicado: uma função que retorna verdadeiro ou falso. No exemplo abaixo, vamos criar um novo array apenas com pessoas que tem o cargo de Designer.
Os método reduce() combina os elementos de um array, usando a função que você especificar, para produzir um único valor. O reduce recebe dois parâmetros:
Função que tem dois parâmetros: o acumulador (
sumno exemplo abaixo) e o elemento atual da iteração do array (pessoano exemplo abaixo);O valor inicial do acumulador (
0no exemplo abaixo).
No exemplo, vamos somar todos os salários das pessoas do array:
Last updated
Was this helpful?