DEV Community

Jhonatan Marques
Jhonatan Marques

Posted on

# ARRAY

ARRAYS

Boas práticas | um array armazena valores que são do mesmo tipo, sequencialmente. Embora o JS permita criar arrays com tipos diferentes é altamente recomendável seguir as boas práticas de utilizar o mesmo tipo para se criar um array.

Um array é um conjunto ordenado de valores.

Cada valor é chamado de elemento e cada elemento tem uma posição numérica no array, conhecida como índice.

Os arrays em JavaScript são: não tipados : um elemento do array pode ser de qualquer tipo e diferentes elementos do mesmo array e podem ser de tipos diferentes.

Os elementos podem ser até objetos ou outros arrays, o que permite a criação de estruturas de dados complexas, como arrays de objetos e arrays de arrays.

Os arrays em JavaScript são baseados em zero e usam índices de 32 bits: o índice do primeiro elemento é 0 e o índice mais alto possível é 4294967294 (232−2), para um tamanho de array máximo de 4.294.967.295 elementos.

Os arrays em JavaScript são dinâmicos: eles crescem ou diminuem conforme o necessário e não há necessidade de declarar um tamanho fixo para o array ao criá-lo ou realocá-lo quando o tamanho muda.

Os arrays em JavaScript podem ser esparsos: os elementos não precisam ter índices contíguos e pode haver lacunas.

Todo array em JavaScript tem uma propriedade length. Para arrays não esparsos, essa propriedade especifica o número de elementos no array. Para arrays esparsos, length é maior do que o índice de todos os elementos.

Criando arrays

A maneira mais fácil de criar um array é com um array literal, que é simplesmente uma lista de elementos de array separados com vírgulas dentro de colchetes.

`Por exemplo: 

var empty = [];                      // Um array sem elementos 

var primes = [2, 3, 5, 7, 11];      // Um array com 5 elementos numéricos | boa prática

var misc = [ 1.1, true, "a", ];    // 3 elementos de vários tipos + vírgula à direita|má pratica`
Enter fullscreen mode Exit fullscreen mode

Os valores de um array literal não precisam ser constantes. Podem ser expressões arbitrárias:

var base = 1024;
var table = [base, base+1, base+2, base+3];
Enter fullscreen mode Exit fullscreen mode

Os array literais podem conter objetos literais ou outros array literais:

var b = [[1,{x:1, y:2}], [2, {x:3, y:4}]];
Enter fullscreen mode Exit fullscreen mode

INSERINDO UM ELEMENTO NO FINAL DO ARRAY

Se quisermos acrescentar um novo elemento nesse array (por exemplo o numero 10), tudo que precisamos fazer é referenciar a última posição livre do array e atribuir-lhe um valor.

Em JavaScript, array é um objeto mutável. Podemos facilmente lhe acrescentar novos elementos. O objeto crescerá dinamicamente á medida que novos elementos forem adicionados.

// inserindo elemento no final do array

let numbers = [0,1,2,3,4,5,6,7,8,9]

numbers [numbers.length] = 10

console.log (numbers) // saida : [0,1,2,3,4,5,6,7,8,9,10]
Enter fullscreen mode Exit fullscreen mode

INSERINDO UM ELEMENTO NA ÚLTIMA POSIÇÃO [push]

A API de JavaScript também tem um método chamado push que nos permite acrescentar novos elementos no final de um array. Podemos acrescentar quantos elementos quisermos como argumentos no método ***push***

//***push*** que nos permite acrescentar novos elementos no final de um array

let numbers = [0,1,2,3,4,5,6,7,8,9,10]

numbers.push(11)
numbers.push (35)

console.log (numbers) // saída : [0,1,2,3,4,5,6,7,8,9,10,11,35]
Enter fullscreen mode Exit fullscreen mode

ISERINDO UM ELEMENTO NA PRIMEIRA POSIÇÃO [unshift]

Agora vamos adicionar mais um elemento no array, só que agora na primeira posição [-1], basta utilizar o método ***unshift***

//*unshift *****que nos permite acrescentar novos elementos no começo de um array

let numbers = [0,1,2,3,4,5,6,7,8,9,10,11,35]

numbers.unshift(-1)
numbers.unshift(-2)
console.log(numbers) // saída : [-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,35]
Enter fullscreen mode Exit fullscreen mode

REMOVENDO UM ELEMENTO DO FINAL DO ARRAY [pop]

Para remover um elemento do final de array, basta utilizar o método ***pop***

// ***pop*** que nos permite remover o último elemento de um array

let numbers = [-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,35]

numbers.pop();        // não precisa inserir nenhum valor
console.log(numbers) // saída : [-2,-1,0,1,2,3,4,5,6,7,8,9,10,11]

 // para saber qual elemento foi retirado é simples, basta jogar o 'numbers.pop' dentro de uma
//  variavel

let removidos = numbers.pop();
console.log(removed) // saída : [35]
Enter fullscreen mode Exit fullscreen mode

REMOVENDO UM ELEMENTO DO INÍCIO DO ARRAY [shift]

Para remover um elemento do início de array, basta utilizar o método ***shift***

// ***shift*** que nos permite remover o primeiro elemento de um array

let numbers = [-2,-1,0,1,2,3,4,5,6,7,8,9,10,11]

numbers.shift();        // não precisa inserir nenhum valor
console.log(numbers) // saída : [-1,0,1,2,3,4,5,6,7,8,9,10,11]

 // para saber qual elemento foi retirado é simples, basta jogar o 'numbers.pop' dentro de uma
//  variavel

let removed = numbers.shift();
console.log(removed) // saída : [-2]
Enter fullscreen mode Exit fullscreen mode

ADICIONANDO E REMOVENDO ELEMENTOS DE UMA POSIÇÃO ESPECIFICA [splice]

O método splice pode ser usado para remover um elemento de um array, simplesmente especificando a posição / índice a partir do qual queremos fazer a remoção e a quantidade de elementos que gostaríamos de remover, assim:

MUITO IMPORTANTE O PRIMEIRO ITEM DO numbers.splice(2,3) (2) REMOVE A PARTIR DESTE INDICE

POR ISSO A REMOÇÃO COMEÇOU DO [ -1 ] E A ACABOU COM O NUMERO DE ITEM (3) ACIMA

// ***splice*** que nos permite remover um elemento em especifico do elemento de um array

let numbers = [-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,35]

numbers.splice(2,3); // o primeiro elemento (2) vai acessar o indice do array
                                      // o segundo elemento (3) vai ser a quantidade de itens que vc quer remover

console.log(numbers) // saída : [-2,-1,3,4,5,6,7,8,9,10,11,35]

 // para saber qual elemento foi retirado é simples, basta jogar o 'numbers.splice' dentro de uma
//  variavel
let removidos = numbers.splice(2,3);
console.log(removed) // saída : [0, 1, 2]
Enter fullscreen mode Exit fullscreen mode

Para inserir novamente os números de volta utilizamos o splice novamente

MUITO IMPORTANTE PARA INSERIR NOVAMENTE OS ELEMENTOS A PARTIR DO [0] A CONTAGEM COMEÇOU A PARTIR DO ELEMENTO (2) E O NUMEROS VAI SER INSERIDOS DEPOIS DO [-1]

// ***splice*** que nos permite diconar um elemento em especifico no elemento de um array

let numbers = [-2,-1,4,5,6,7,8,9,10,11,35]

numbers.splice(2,0,1,2,3); 
// o primeiro elemento (3) vai acessar o indice do array
// o segundo elemento (0) vai ser a quantidade de itens que vc quer remover
// a partir do elemento (0) vai ser os elementos que vc quer inserir (1,2,3)

console.log(numbers) // saída : [-2,-1,0,1,2,3,4,5,6,7,8,9,10,11]

 // para saber qual elemento foi retirado é simples, basta jogar o 'numbers.splice' dentro de uma
//  variavel
let removidos = numbers.splice(2,3);
console.log(removed) // saída : [0, 1, 2]
Enter fullscreen mode Exit fullscreen mode

ARRAYS BIDIMENSIONAIS ?????? PROCURAR

MÉTODOS ARRAYS

CONCAT - Junta vários arrays e devolve uma cópia dos arrays concatenados.

let a = [1,2,3,4,5];

let b = [7,8,9,10];

const numbers = a.concat(b);

console.log(numbers) // saida : [1,2,3,4,5,7,8,9,10]
Enter fullscreen mode Exit fullscreen mode

EVERY - Itera por todos os elementos do array, verificando uma condição desejada (função) até que ‘false’ seja devolvido ( verifica se passa no teste e da um resultado booleano)

let a = [1,2,3,4,5];

let b = [7,8,9,10];

const resultado = (a) => a > 2; // condição boolean

console.log(resultado(a [2])) // saída : true ( 3 é > 2)
Enter fullscreen mode Exit fullscreen mode

FILTER - Filtra elementos específicos que você quer que esteja em um lista com determinados critérios.

let names =  [
    'Furia',
    'Navi',
    'Luminosity',
    'Fnatic',
    'Liquid',
    'North',
    'G2',
    'NZXT',
]
                                                // o 'name' dentro da função é o nome de uma variavel e você pode colocar
                                             // o nome que vc quiser
const times = names.filter((name) => name.startsWith('N')) // função para saber que times começam
                                                                                                                     //  com a letra 'N'

console.log(filtro) // saída : [ 'Navi', 'North', 'NZXT' ]
Enter fullscreen mode Exit fullscreen mode

FOREACH - O método forEach do JavaScript é uma de várias maneiras de percorrer arrays.

O método forEach é usado para percorrer arrays, mas usa uma função de modo diferente do "laço for" tradicional.

O método forEach passa uma função de callback para cada elemento do array juntamente aos seguintes parâmetros:

  • Valor atual (obrigatório) - O valor do elemento atual do array
  • Índice (opcional) - O número do índice do elemento atual
  • Array (opcional) - O objeto de array ao qual o elemento atual pertence

Como alternativa, você pode usar uma representação de arrow function do ES6 para simplificar o código:

numbers.forEach(number => console.log(number));

let numbers = [1,2,3,4,5] 

                                     // o 'numbers' dentro da função é o nome de uma variavel e você pode colocar
                                    // o nome que vc quiser
const numerosExemplo = numbers.forEach (numbers => console.log(numbers)) // saída : 1,2,3,4,5
Enter fullscreen mode Exit fullscreen mode

JOIN - Junta todos o elementos do array em uma string

let juntandoNome = ['Jhonatan', 'Marques', 'dos', 'Santos'] 

const retornoNome = juntandoNome.join('-') // paramentro que eu quero entre os nomes

console.log(retornoNome) // saída : Jhonatan-Marques-dos-Santos
Enter fullscreen mode Exit fullscreen mode

INDEXOF - Pesquisa o array em busca de elementos específicos e devolve a sua posição. (case-sensitive)

Quando aparecer -1 no console é porque o texto não existe nos parâmetros buscados

let juntandoNome = ['Jhonatan', 'Marques', 'dos', 'Santos'] 

console.log(juntandoNome.indexOf('Marques')) // saída : '1' : pois esse é o numero 
                                                                                        //  do índice que esta a palavra 'Marques'
Enter fullscreen mode Exit fullscreen mode

LASTINDEXOF - Devolve o índice da ultima posição que corresponda ao critério de pesquisa.

(case-sensitive)

let juntandoNome = ['Jhonatan', 'Marques', 'dos', 'Santos'] 

const teste = juntandoNome.lastIndexOf('Santos')

console.log(teste) // saída : 3 : pois esse é o numero do índice que esta a palavra 'Santos'
Enter fullscreen mode Exit fullscreen mode

MAP - (importante para o react) - Criar outro array a partir de uma função que contém o critério/condição e devolve os elementos do array que corresponde o critério/condição.

let numbers = [1,2,3,4,5]

                                                    // 'number' nome qualquer para a variavel
let multiplica = numbers.map ((number)=> number * 2)

// nessa função irá ser multiplicado os numeros dentro do array '[1,2,3,4,5]' 
// e retornar um nome array com o resultado [ 2, 4, 6, 8, 10 ]

console.log(multiplica) // saída : [ 2, 4, 6, 8, 10 ]
Enter fullscreen mode Exit fullscreen mode

SORT - Classifica os elementos em ordem alfabética crescente

Serve somente para strings

let times = [
    'Luminosity',
    'Sk',
    'Navi',
    'Liquid',
    'Outsiders',
    'Vitality',
    'Astralis'
]

const ordemAlfabética = times.sort()

console.log(ordemAlfabética) 
/* saída :
[
  'Astralis',
  'Liquid',
  'Luminosity',
  'Navi',
  'Outsiders',
  'Sk',
  'Vitality'
]
Enter fullscreen mode Exit fullscreen mode

REVERSE - Reverte os elementos, os últimos elementos serão os primeiros

let times = [
    'Luminosity',
    'Sk',
    'Navi',
    'Liquid',
    'Outsiders',
    'Vitality',
    'Astralis'
]

const ordemAlfabética = times.reverse()

console.log(ordemAlfabética)
 /* saída :
  [ 'Astralis',
      'Vitality',
      'Outsiders',
      'Liquid',
      'Navi',
      'Sk',
      'Luminosity' ]
Enter fullscreen mode Exit fullscreen mode

SLICE - Corta o array com o numero de índice especificado

let times = [
    'Luminosity',
    'Sk',
    'Navi',
    'Liquid',
    'Outsiders',
    'Vitality',
    'Astralis'
]

                        // indice especificado (2,-1)
                        // inicial(2) quando positivo lido da esquerda p/ direita 
                        //final(-1)  quando negativo lido da direita p/ esquerda
const ordemAlfabética = times.slice(2,-1)

console.log(ordemAlfabética)

// saída : [ 'Navi', 'Liquid', 'Outsiders' ]

Enter fullscreen mode Exit fullscreen mode

SOME - Itera por todos os elementos do array, verificando a condição desejada (função) até que true seja devolvido.

SORT - Organiza o array em ordem alfabética ou de acordo com a função especificada.

let times = [
    'Luminosity',
    'Sk',
    'Navi',
    'Liquid',
    'Outsiders',
    'Vitality',
    'Astralis'
]

times.sort();

console.log(times) 
// saída : 
[ 'Astralis',
  'Liquid',
  'Luminosity',
  'Navi',
  'Outsiders',
  'Sk',
  'Vitality'
]
Enter fullscreen mode Exit fullscreen mode

TO STRING - Devolve o array em forma de uma string.

let times = [ 1, 2, 3, 4, 5 ]

times.toString();

console.log(times) // saída : o array tipo number sai como string [ 1, 2, 3, 4, 5 ]
Enter fullscreen mode Exit fullscreen mode

Esses são apenas alguns tipos e possibilidades de se trabalhar com os arrays.

Top comments (0)