Aprofundamento das Funções de Array em JavaScript
Tags: javascript, beginners
Published: 2023-01-25 18:44:29

Em artigos passados, falamos um pouco sobre o tipo de propriedade Object,e citamos um pouco a respeito de um tipo específico de estrutura de dados, que consegue armazenar um conteúdo,chamada Array. Hoe iremos entender mais a fundo o funcionamento prático desse objeto diversificado que é muito utilizado na linguagem JavaScript.

Um dos melhores fatores de uso do Array, é que diferente de um objeto normal, o array temm a capacidade de guardar dados em ordem, consequentemente podendo chamar de maneira enumerada,a ordem que se foi colocado.

Os arrays podem ser criados usando a notação de colchetes, como por exemplo: 

```
let list = [1, 2, 3, 4, 5];
```

No caso acima: Como iríamos chamar por exemplo o número 3, que está dentro da variável `list`? 

Antes de executar tal tarefa precisamos relembrar um ponto importante. Os elementos de um array começam em 0. Por exemplo, para acessar o primeiro elemento do array acima, usaria-se lista[0].

Sendo assim, para acessar o elemento 3, usaríamos: list[2].


Existem também outros "tipos específicos" de Array, como:

- Arrays simples: Esses arrays armazenam valores de qualquer tipo, incluindo números, strings, objetos e outros arrays.


```
let arr = [ 'banana', { name: 'Altencir' }, true, function() { alert('Hello World'); } ];
```


- Arrays multidimensionais: Esses arrays são arrays dentro de outros arrays, permitindo armazenar uma coleção de dados de forma hierárquica.

```
var myArray = [
    [1,2,3], 
    [4,5,6], 
    [7,8,9]
// document.write(myArray[0][1]);  que seria 2 
];
```

No caso acima, uma forma de compreender seria pensar que dentro de myArray foi na primeira matriz de evento que seria a primeira linha [1,2,3]. Partindo do princípio que 0 é o primeiro. No caso do array secundário [1] no document, se referia a posição dentro da matriz primária, que seria 1, e como 1 equivale a segunda opção, o resultado equivalente desta chamada seria 2



- Arrays associativos: Esses arrays são similares aos objetos JavaScript, permitindo armazenar valores usando chaves em vez de índices.

```
Object.keys(frutas).length
// Lembrando muito um objeto simples
```

**ADIÇÃO DE MÉTODOS:**

Algo essencial no uso de arrays, são seus métodos. Com eles conseguimos ter noção e poder de adicionar ou remover alguma propriedade específica do nosso desejo. Por exemplo o caso de  
`shift`,`push`.

Para compreender, usarei exemplos fáceis de compreender.

Enquanto `shift` retira um novo elemento do início da lista fazendo o sucessor se tornar o primeiro, push faz o contrário retirando o que está por último. Seria como uma fila de atendimento. O método push, seria quando alguém pega uma senha e aguarda ser chamada, entrando na fila. Já o shift seria quando o primeiro da fila é chamado, fazendo o antecessor a ela que seria o segundo na fila, se tornar o novo primeiro.
Existe também o método unshift que faz o contrário do shift citado

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1wk8k9yv6sm76y5bdv1j.png)


Existe também uma situação quando usada uma estrutura chamada stack.

Nesse caso, é utilizado o `push` também para inserir mas com o adicional do `pop`. Ilustrando, seria como num jogo de cartas. O pop está retirando cartas de cima do baralho, enquanto o push estaria inserindo novas. 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1qm6xhafbwg655eutec2.png)

 Veja alguns exemplos:

```
let fruits = ["Maçã", "Laranja", "Pera"];

alert( fruits.pop() ); // remove "Pera"

alert( fruits ); // Maçã, Laranja
```

```
let fruits = ["Maçã", "Laranja"];

fruits.push("Melancia");

alert( fruits ); // Maçã, Laranja, Melancia
```

```
let fruits = ["Maçã", "Laranja", "Pera"];

alert( fruits.shift() ); // remove Maçã

alert( fruits ); // Laranja, Pera
```

```
let fruits = ["Laranja", "Pera"];

fruits.unshift('Maçã');

alert( fruits ); // maçã, Laranja, Pera
```

Algo que pode ter percebido é que ele realmente se parece MUITO com o objeto Objects, então o que faz o array ser tão único,e uma alternativa ao objeto comum?

O que torna os arrays realmente especiais é sua representação interna. O mecanismo de array difere do object simplório por  armazenar seus elementos na área de memória de maneira contínua, um após o outro, e também existem outras otimizações para fazer os arrays funcionarem muito rápido.

Em resumo, arrays são uma ferramenta poderosa para armazenar e manipular coleções de dados no JavaScript. Existem vários tipos de arrays, cada um com suas próprias características e usos específicos. Com a ampla variedade de métodos e propriedades disponíveis, os arrays oferecem uma grande flexibilidade e facilidade de uso para programadores JavaScript.