[Música] fala Mestres beleza no vídeo de hoje nós vamos estar falando aqui sobre a Reis né vai ser o primeiro vídeo aí do nosso módulo de a Reis Então a gente vai basicamente ver a sintaxe ali de como criar uma rei o que que é uma rei de Fato né E como a gente consegue começar a manipular uma Rei aí e através da a forma mais simples né da gente começar a manipular os Reis tá então antes da gente já ir pro código essa ideia né de arrei o tipo de dado né ai ele é
basicamente traduzindo a rei a gente chega em lista né então seria uma ideia de uma lista de dados ou uma lista de variáveis se é que a gente pode eh se é que isso pode deixar mais simples mas a ideia que basicamente nós temos um conjunto uma lista indexada de elementos de valores de de de valores tá então eu posso ter uma lista de números o que que seria uma lista de números eu tenho vários números em diferentes posições dessa lista né desse meu arrei então na posição zero eu tenho um um número valor tal
na posição um eu tenho o valor tal na posição dois eu tenho o valor tal e assim por diante tá então o Array no JavaScript Ele é bem flexível então eu posso ter uma arrei que na primeira posição tem um número na segunda posição tem uma string na terceira posição tem um objeto na quarta posição tem outro arrei e a gente consegue começar a brincar com essas coisas e a gente vai ver isso nessa aula então a ideia do arrei é essa né é ser essa lista de diferentes valores e ela é muito usada para
eh é um tipo de dado muito importante para estruturação e organização de dados Então se a gente pensar por exemplo num nemum n um sistema completo onde a gente tem uma é o exemplo clássico de usuários né que eu tenho lá uma um vários usuários na minha aplicação e eu quero fazer uma lista de usuários quando eu fazer a leitura do banco de dados ou quando eu for exibir isso na tela eu vou ter uma lista de usuários Então essa lista vai ser um Array e cada posição desse Array vai ser um objeto que representa
o usuário tá a gente não chegou em objetos ainda mas a ideia é a mesma tá então nós vamos aqui pro código a gente vai criar o nosso exemplo aqui pra gente começar a brincar e começar a entender como que é isso tá então aqui eu já vou criar uma Array e a criação né a sintaxe aqui para trabalhar com arris eu basicamente eu vou atribuir esse arrei a uma variável então eu vou criar aqui a variável frutas e aqui a anotação de fato a gente usa colchetes né então eu abro e fecho colchetes e
aqui eu tenho um arrei tá nesse caso aqui é uma arrei vazio eu posso fazer o seguinte ó console Log em frutas e executando isso aqui eu tenho ali o arrei vazio sendo exibido Então dentro desse meu arrei eu vou colocar nomes de frutas tá então na primeira posição aqui eu posso ter por exemplo é uva uva é fruta acho que é né É uva é e na segunda posição eu vou ter laranja e enfim eu posso ir definindo né Em cada posições valores tá então que eu tô fazendo esses valores e e no formato
string tá então vou ter aqui ó maçã e assim eu posso ir definindo esses meus valores e quando eu executo o código né quando eu faço o console log nesse meu Array o que eu tenho aqui no terminal é isso tá É de fato o Array ele printa né as chaves e os valores separando por vírgula tá então isso seria né o mais simples aí de ar rei né a a sintaxe mais simples de uma rei e agora a gente já vai começar a bagunçar as coisas né então eu vou até deixar um comentário aqui
ó que seria criando uma Rei simples e esse nossa Reed de frutas tá então com essa agora eu vou criar um outro Ari eu vou criar um arrei aleatório Então vou chamar aqui LED aleatório vai ser o arrei e aqui dentro desse arrei como eu falei quando eu tava falando que os arris eles são bem flexíveis eu posso ter o número um limão uma string né limão posso ter undefined né eu posso ter o nosso n n not Number eu posso ter eu poderia ter os objetos né que seri que vai ser o Próximo módulo
que a gente vai estar falando sobre objetos Mas eu posso né colocar dentro desse arrei diferentes valores e aqui eu posso fazer ó console P log aleatório eu vou comentar aqui esse console log de frutas é o atalho para comentar Eu acho que eu já falei isso aqui né control barra tá e salvando o arquivo e executando eu tenho aqui né um limão undefine de então a gente consegue né Colocar diferentes valores não tem problema e e é bom isso ficar Claro porque em outras linguagens eh em algumas linguagens né não vai não em todas
mas em algumas a gente tem uma certa restrição em cima dos ar Reis aqui no JavaScript não aqui o a gente tem muito mais Liberdade em relação a isso tá então esse nosso arrei né esse arrei simples a gente vai começar agora a acessar esses valores tá então aí a gente já viu que a gente como que cria que que a gente pode criar com diferentes valores então agora a gente vai começar a fazer o acesso aos valores do arrei então vou deixar aqui um comentário ó acessando valores e para acessar os valores a gente
lá no início né Eu falei que o Array ele é indexado ele tem posições então cada posição ela vai ter ali um um número referente a essa posição né um número inteiro e sempre começa de zero tá tá então o primeiro item do arrei é a posição zero tá então se eu fizer aqui ó console log do meu arrei de frutas na posição zero e a anotação é essa tá eu boto o nome do arrei né a variável que representa esse arrei e entre Chaves eu coloco o o inteiro né representando a posição desse arrei
no caso aqui a posição zero e se eu faço isso e executo nós temos aqui ó uva que é o primeiro item então eu eu acesso o esses valores né uma uma das formas que seria essa forma indexar através do do índice né do valor com essa notação então eu posso aqui atribuir uma variável eh o primeiro item como sendo frutas zero eu posso acessar qualquer índice né então o segundo item que vai ser igual a frutas na posição um né se eu fazer aqui o log ó console log de segundo item E se a
gente executar isso aqui nós teremos ó laranja que é esse segundo item E se eu passar né uma posição que não existe né Vamos testar isso aqui ó frutas na posição qu executando ele vai retornar undefined tá então como nós não temos um item na posição quatro que seria o quinto item da lista né ele retorna undefined porque não está definido né a a o tipo undefined é isso não existe o valor não foi definido por isso ele retornou undefined eh é o quinto item porque novamente tudo inicia do zero né então se eu tô
pegando a posição quatro é 0 1 2 3 4 total de cinco itens e basicamente a forma a forma indexada de acessar é essa e também a forma para alterar né nós conseguimos também alterar não é a única forma né tanto para acessar quanto para alterar mas é a mais simples a gente consegue alterar através do índice também então se eu fizer aqui o seguinte ó vou deixar aqui o comentário né de alterando se eu quero alterar o meu primeiro it item né o meu primeiro item aqui do arrei de frutas eu vou fazer o
seguinte ó frutas no índice zero e aqui eu faço a atribuição né falo que frutas no índice zero vai receber um novo valor que é banana e aqui se eu fizer um console log de frutas se a gente executar isso aqui frutas é o arreio inteiro né Nós temos lá ó banana laranja e maçã tá então eu troquei o primeiro item através né desse comando aqui indicando né que no índice zero eu vou querer e substituir o valor dele e eu posso fazer isso também em todos os índices que já existem e nos índices que
também não existem então se eu vi aqui ó frutas no índice 4 né que seria o quinto item vai receber limão então no quarto o quinto item né no índice 4 eu estou acionando um novo item que não foi criado não foi atribuído lá no início do arrei e vai ficar um um buraco aí né o terceiro item que é o item de índice três ele não vai ser definido então aqui ó quando eu faço o consol log disso aqui ó tem lá a banana laranja maçã Um item vazio e o limão tá então no
como eu pulei né um um espaço ali uma posição do arrei ele ficou como como espaço vazio tá então a gente consegue atribuir e ler valores que cujo índice não foi criado ainda do arrei né não não foi definido então eu posso iniciar eu poderia né iniciar o arrei de frutas como uma arrei vazio e depois de iniciado eu poderia atribuir os valores e depois Enfim fazer tanto a manipulação quanto o acesso desses itens Sem problema tá então a gente consegue fazer voltando aqui né na alteração a gente faz a alteração dos nossos arris dessa
forma e se eu quiser remover também Um item eu posso remover usando o undefined né então se eu quiser agora tirar esse esse item da posição quatro né então eu faria o seguinte ó vou deixar aqui o comentário né removendo um valor eu posso fazer né o frutas no índice 4ro vai receber undefined que aí ele vai ele vai ficar Indefinido né ou seja o valor foi removido da lista e isso aqui na verdade eu não vou deixar como removendo um valor de um item porque é de fato isso né eu vou remover esse valor
só que aquela posição ela vai continuar existindo no arre então vamos fazer o seguinte eu vou remover aqui o valor do item no índice um ou seja o item do índice um é laranja tá e eu vou fazer isso e vou fazer o consol log aqui de frutas fazendo isso eu vou comentar esse outro conso log anterior para ficar só um e quando eu executo eu tenho lá ó banana undefined que foi o cara que eu removi o valor né maçã tem um item aqui vazio e limão então eu tirei o valor só que o
meu a minha lista aquela posição ela vai continuar vazia e às vezes eu não quero que isso aconteça e a gente vai ver como a gente pode fazer é a remoção de fato da posição do arrei usando os métodos de arris nas aulas futuras Tá mas por enquanto vamos entender aqui que a gente consegue remover somente o valor né De Um item e para remover o item inteiro né a posição inteira a gente vai compreender isso em aulas futuras Tá certo então outra coisa que a gente pode estar fazendo aqui é acessar acessando o tamanho
de um arrei Então os arris como nós vimos né a gente consegue adicionar diferentes itens manipular diferentes itens mas no final esse arreio ele vai ter sempre um tamanho né se eu in dessa forma aqui né quando eu já inicializo ele ele possui um tamanho possui três itens dentro dele quando eu adiciono aqui o item na posição quatro eu vou ter cinco itens dentro ali e do meu arreio por mais que um tá vazio né quando eu atribuo um valor um undefined por mais que eu estou tirando o valor daquilo a posição o tamanho do
arrei ele continua o mesmo tá então para acessar a posição todos os arris se a gente digitar aqui ó frutas ponto nós temos aqui vários métodos essa notação de ponto a gente não entendeu ela muito ainda né a gente usa bastante por exemplo console pon log mas a gente vai entender essa notação de ponto mais em objetos mas quando eu digito aqui frutas ponto eu tenho aqui alguns métodos né isso aqui são métodos a gente não sabe ainda o que são métodos mas tem uma propriedade aqui que é length e esse length é o tamanho
do meu Array então se eu fizer uma console log disso aqui eu vou remover aqui o consol log de frutas tá e se a gente executa o l é c n ou seja tem cinco itens dentro desse meu arrei se eu fizer esse consol log antes ó aqui logo depois que eu declaro a variável o arrei frutas né quando eu executar ele vai vai printar aqui ó três então quando eu criei ele tinha três itens depois eu adicionei o item na posição quatro né que adicionou o limão mas também criou um item vazio então ficou
ocupando aí as cinco posições que é aqui quando eu faço o outro cons Tá e por mais que eu removi o valor né de undefined a gente viu que a posição continua sendo ocupada tá então nós temos essa essa forma aqui para tá sempre acessando o tamanho de uma ar rei e e verificando se ele verificando né o tamanho ali a quantidade de itens que possui aquele arrei então agora nós vamos criar aqui um arrei mais complexo um arrei complexo e a gente vai criar isso aqui pra gente conseguir ver como que é o acesso
a esse Array complexo e entender que de fato as coisas dependem tá então que vamos fazer o seguinte ó eu vou criar aqui uma Rei chamado pessoa e esse arrei eu vou ter o seguinte a primeira posição aqui ó vai ser o nome João na segunda posição que pode ser a idade então 28 anos essa terceira posição aqui a gente pode ter um altura por exemplo né eu posso ter aqui outro número né que é tipo 1 pon 83 eu posso ter um boleano né pode ter um TR aqui que pode pode ser qualquer outra
coisa é o significado disso aqui não vai importar muito agora mas o que eu quero mostrar para vocês é que eu consigo criar colocar né outro arrei nessa um arrei dentro do outro né e a gente consegue ficar alinhando colocando vários arris vários objetos vários tipos de dados aí dentro do arrei então por exemplo nesse caso aqui é o João tem 28 anos 1 83 tem esse tru aqui tem outro arrei aqui dentro então vamos imaginar que esse outro arrei seria de de um pet que vão tem que seria por exemplo o cachorro então o
nome desse cachorro é o quê é é Rex o Rex pesa 3 kg né e o Rex sim enfim qualquer qualquer valores aqui alguma coisa mas o que eu quero mostrar é o seguinte a gente consegue criar esse arrei com essa estrutura mais complexa né então se eu fazer aqui o consol log consol log de pessoa que é o nosso arrei eu vou comentar aqui o consol de frutas se eu executo esse código nós temos ó João 283 true Aí temos outro arrei né então no consol log a gente consegue ver que eu tenho uma
Rei dentro do outro e para fazer o acesso desses valores a gente pode acessar usando essa mesma anotação de Chaves tá Então como que fica isso eu vou acessar por exemplo o nome né que seria aqui João Então vou criar variável nome vai receber vai ser pessoa né na posição zero que é esse item aqui João né E se eu quero pegar por exemplo esse true vai ser esse true pode ser o qu se ele é habilitado né habilitado vai ser pessoa na posição TR né 0 1 2 3 e eu posso fazer eu posso
fazendo console log isso aqui né então console log n console log habilitado executando né João e true tá então nós estamos conseguindo acessar e para acessar esse esse quarto item né no caso quinto item né o o item do índice 4 eu continuo acessando da a a sessão do índice né dessa forma que nós vimos então a que seria o pet né vai ser pessoa no índice quatro e se eu faço cons log de pet PR gente dar uma olhada eu vejo que Pet é uma rei tá então a gente consegue acessar dessa forma e
se eu quiser agora acessar o nome do PET né que é hex eu posso fazer nesse caso aqui que nós estamos criando as variáveis a gente pode fazer de duas formas Então qual seria essa primeira forma eu vou fazer aqui o seguinte ó LED Pet name vou deixar em português né nome PED vai ser pessoa no índice quatro beleza que é esse Array e desse Array eu quero pegar a posição zero aqui é Rex então aqui depois dessa desse primeiro par de Chaves eu posso acessar outro índice né que seria o índice zero e aí
dessa forma eu posso fazer o conso log né e nome Pet executando isso aqui eu tenho lá ó o nome do PET é Rex tá então eu consigo acessar eu acesso o o eu extraio do Array primário né o Array Pie aí esse quarto item né o o índice quatro na verdade é o quinto item it e desse quinto item que vai ser a resposta disso aqui que tá selecionado eu vou pegar de novo o índice zero aqui é Rex e ou a outra forma que a gente poderia fazer é o seguinte eu vou já
vou fazer aqui no console log console log Pet ou seja quem que é Pet é pessoa no índice qu né que seria esse meu arreio então de Pet Eu vou pegar aqui o índice zero a gente conseguiria fazer essa forma de acesso também que como a gente já possui essa variável Tá mas nesses acessos de a Reis dentro de a Reis a gente consegue fazer o acesso usando várias Chaves né uma após a outra então osar Reis eh Resumindo aqui né eles são um tipo de dado que dá pra gente bastante flexibilidade dá pra gente
a possibilidade de representar diferentes tipos de dados de uma forma Bem Mais Simples né porque é muito mais fácil armazenar tudo Dent dentro de uma arrei do que ter que ficar criando diversas variáveis de coisas que quando escala né quando fica muito grande fica totalmente inviável então é estrutura de dados muito utilizada muito prática dá para representar muita coisa e enfim a gente vai ver aí diferentes usos né no nosso dia a dia como programador a gente tá sempre lidando com a Reis e a gente vai explorar mais eles aqui como que a gente pode
manipular eles de uma forma mais eficiente nas próximas aulas tá então eu espero aí que eu tenha ajudado qualquer dúvida pode estar deixando um comentário logo abaixo e é isso aí muito obrigado e até a próxima [Música]