Executando verificação de segurança...
2

Descomplicando Array em Javascript (ou Typescript)

PS.: TUDO que foi escrito nesse artigo serve tanto para Javascript, quanto para Typescript. Aproveite! 😄

Primeiro contato

Como em todas outras linguagens de programção, uma hora ou outra vamos precisar lidar com listas de itens. Esses itens podem ser informações de clientes, listagem das compras que você precisa fazer, ou até mesmo a sequência de números da mega sena que você sempre joga! 😂

Essa "lista de itens" se chama: array!

Agora imagina uma fila de banco, onde cada pessoa recebe uma senha para deixar um pouco mais organizado o atendimento. Podemos considerar a fila como nosso array e cada senha é o que chamamos de index.

Mas tem um detalhe bem importante aqui: o índice do Javascript começa no ZERO (0, 1, 2, 3, ..., N) e por isso o último elemento é o número total de elementos MENOS 1.

Ex.: Uma fila com 3 pessoas, a primeira pessoa tem o índice 0, a segunda tem o índice 1 e a terceira o índice 2.

🚶‍♂️🚶‍♀️ 🚶‍♀️

Criando um array

Há duas formas de criar um array:

  1. Através do construtor, usando a palavra 'new' antes do 'Array':
const arrayVazio = new Array(); // array vazio
console.log(arrayVazio); // []

const arrayDuasPosicoesVazias = new Array(2); // array com 2 elementos vazios
console.log(arrayDuasPosicoesVazias ); // [undefined, undefined]

const nomes = new Array('Wender', 'Felipe'); // array com 2 elementos do tipo string
console.log(nomes); // ['Wender', 'Felipe']

Ou através de colchetes - que é o mais utilizado atualmente:

const arrayVazio = []; // array vazio
console.log(arrayVazio); // []

const arrayDuasPosicoesVazias = [,,]; // array com 2 elementos vazios
console.log(arrayDuasPosicoesVazias ); // [undefined, undefined]

const nomes = ['Wender', 'Felipe']; // array com 2 elementos do tipo string
console.log(nomes); // ['Wender', 'Felipe']

const maisNomes = [...nomes]; 
// Os 3 pontos "joga" tudo que está dentro de 'nomes' para fora. 
// Já os colchetes simbolizam que será criado um novo array. 
// Logo, será criado um novo array com todos elementos de 'nomes'

console.log(maisNomes ); ['Wender', 'Felipe']

PS.: use a virgula para separar os elementos

Agora imagina aquela fila do banco com três pessoas. Se a gente quiser criar esse array no javascript seria assim:

const filaBanco = ['🚶‍♂️', '🚶‍♀️', '🤰'];

E em relação aos índices seria:

🚶‍♂️ 🚶‍♀️ 🤰
0 1 2

Dica: para saber o tamanho total de elementos de um array, utiliza a função .length em qualquer array. Mas lembre-se: tamanho !== índice

Ex.: filaBanco.length retornará 3.

Ex².: filaBanco.length - 1 retornará o último índice, que nesse caso é 2.

Alterando um array

Beleza, já sei criar, mas e se eu quiser remover/adicionar/etc ?

Assim como .length que retorna o tamanho total, os arrays também possuem outras funções pré-definidas que podemos usar ao nosso favor.

Antes de começar com os exemplos, vamos inicializar nossa fila do banco antes de dar as senhas:

let filaBanco = [];

Adicionando item

As primeiras pessoas chegaram para serem atendidas. Um jeito de adicionar um elemento ao final do array é com a função .push(item):

filaBanco.push('🧔'); 
console.log(filaBanco); // ['🧔']

filaBanco.push('👩‍🦱'); 
console.log(filaBanco); // ['🧔', '👩‍🦱']

PS.: é possível adicionar quantos itens você quiser, separando cada item por virgula:
Ex: filaBanco.push('🧔', '👩‍🦱')

Mas se por acaso o banco tem fila única, talvez você precise colocar uma idosa que acabou de chegar no começo da fila. Pra fazer isso, usamos a função .unshift(item)

filaBanco.unshift('🧓'); 
console.log(filaBanco); // ['🧓', '🧔', '👩‍🦱']

E não acaba por aí. Mais um idoso apareceu, e agora? Para ser justo, devemos coloca-lo depois da idosa, mas na frente do restante dos adultos. Nesse caso, podemos usar a função .splice.

Ela é um pouco mais complicada pois você precisa passar pelo menos 3 informações pra ela, sendo:

  • A posição do novo item
  • Quantos itens você quer remover a partir da posição informada anteriormente
  • Item a ser adicionado

Nesse caso precisamos lembrar que:

🧓 🧔 👩‍🦱
0 1 2

Na prática ficaria:

filaBanco.splice(1, 0, '👴');
console.log(filaBanco); // ['🧓', '👴', '🧔', '👩‍🦱']

PS.: O número 0 é a quantidade de elementos que a gente quer remover. No caso, nenhum!

PS².: O número 1 é a posição onde queremos adicionar, no caso posição inicial (zero) + 1. Como informamos que não queremos remover nenhum item, a função adiciona o '👴' e "empurra" os demais itens para as outras posições.

Removendo item

Conforme as pessoas são atendidas, elas vão saindo da fila. Nesse caso, a idosa será atendida primeiro, logo precisamos retirar a primeira posição com a função .shift():

const pessoaRemovida = filaBanco.shift();
console.log(filaBanco); // ['👴', '🧔', '👩‍🦱']
console.log(pessoaRemovida ); // '🧓'

Agora, a mulher que estava no final da fila desistiu de esperar e foi embora. Nesse caso, usamos a função .pop() para remover o último item.

const pessoaRemovida = filaBanco.pop();
console.log(filaBanco); // ['👴', '🧔']
console.log(pessoaRemovida ); // '👩‍🦱'

Depois de um tempo de atendimento, um garotinho entrou no meio da fila e começou a fazer confusão!

console.log(filaBanco); // ['👴', '👦', '🧔']

Não teve jeito, o segurança teve que retirar ele da fila!

const garotoRemovido = filaBanco.splice(1, 1);
console.log(filaBanco); // ['👴', '🧔']
console.log(garotoRemovido ); // ['👦'] - um array com 1 elemento

PS.: Diferente da vez que usamos o splice para adicionar - que informamos o item no terceiro parâmetro, agora usamos apenas 2 parâmetros sendo:

  • Posição que quer remover
  • Quantas posições quer remover a partir da posição informada anteriormente

Ou seja: remover o item do índice 1 e somente ele.

PS².: O retorno do splice SEMPRE será um array, seja com 1 ou N elementos definidos por você.

Depois de horas de atendimento, a fila cresceu significativamente. E o pior, um rapaz fantasiado está em uma posição aleatória! Com o garotinho foi fácil, mas e agora?

No Javascript existe a função .indexOf que retorna o índice do elemento informado. O segurança não pensou duas vezes e retirou o homem fantasiado da fila:

console.log(filaBanco); // ['👩‍🦱', '👩‍⚖️',......., '🦹‍♂️' ,........,'🙎‍♀️']

const indiceDoHomemFantasiado = filaBanco.indexOf('🦹‍♂️');
const homemFantasiadoRemovido = filaBanco.splice(1, 1);
console.log(filaBanco); // ['👩‍🦱', '👩‍⚖️',...............,'🙎‍♀️']
console.log(homemFantasiadoRemovido ); // ['🦹‍♂️'] - um array com 1 elemento

Extraindo parte do array

Já no outro dia de expediente...

console.log(filaBanco); // ['👨‍🦳', '👵', '🧓', '👴', '👩', '👩‍🦱', '🧑', '👩‍🦰'];

O gerente, vendo que a fila estava começando a ficar grande, decidiu arregaçar as mangas e colocar um atendente só para os idosos. Diferente dos outros casos, vamos usar o .splice para "extrair" parte do array e criar outro, para simbolizar a outra fila:

let filaBancoIdosos = filaBanco.splice(0, 4);
console.log(filaBancoIdosos); // ['👨‍🦳', '👵', '🧓', '👴'];
console.log(filaBanco); // ['👩', '👩‍🦱', '🧑', '👩‍🦰'];

Por hoje é só pessoal!

Espero que tenha te ajudado a entender melhor como funcionam os arrays e suas funções mais básicas - porém super úteis no dia a dia ✌️

Carregando publicação patrocinada...
2

Fala Wender! Muito legal teu post e pra quem tá começando é uma mão na roda. Um site que me ajudou muito a entender os métodos manipuladores de arrays é o Does It Mutate?.

Neste site são explorados todos os métodos manipuladores e identificados quais geram uma nova array e quais modificam a array original, vale a pena conferir! 😄