Respostas

Gabarito Comentado: Praticando com Arrays em JavaScript

Nível 1: Os Fundamentos

1. Minha Lista de Compras 🛒

  • Dica do Mestre 💡: Lembre-se que os arrays começam a contar do zero! O primeiro item está na posição [0], o segundo na [1], e assim por diante.

// Criamos o array (a "caixinha") usando const, pois a referência ao array não vai mudar.
const listaDeCompras = ["Leite", "Pão", "Ovos"];

// Para acessar o SEGUNDO item, usamos o índice 1.
console.log(listaDeCompras[1]); // Saída esperada: "Pão"

2. Trocando de Filme Favorito 🎬

  • Dica do Mestre 💡: Para modificar um valor, basta acessar a posição desejada com os colchetes [] e usar o sinal de atribuição = para dar um novo valor a ela.

// Usamos 'let' porque o conteúdo do array será modificado, o que torna o código mais claro.
let filmesFavoritos = ["Matrix", "O Senhor dos Anéis", "Interestelar"];

// Acessamos a posição 1 (o segundo filme) e atribuímos um novo valor a ela.
filmesFavoritos[1] = "De Volta para o Futuro";

// Exibimos o array completo para ver a alteração.
console.log(filmesFavoritos); // Saída esperada: ["Matrix", "De Volta para o Futuro", "Interestelar"]

3. Aumentando a Playlist 🎵

  • Dica do Mestre 💡: push() empurra para o final. unshift() "desloca" (shift) tudo para a direita e adiciona no começo.


4. Tarefas Concluídas ✅

  • Dica do Mestre 💡: pop() "estoura" o último item fora do array. shift() remove o primeiro e "desloca" todos os outros para a esquerda.


5. Contando as Cores 🎨

  • Dica do Mestre 💡: O loop for clássico é perfeito para isso! for (let i = 0; i < array.length; i++) é um padrão que você usará muito.


6. Removendo um Convidado da Festa 🎉

  • Dica do Mestre 💡: splice() é super poderoso. A sintaxe é splice(índiceInicial, quantidadeARemover). Você precisa do índice de "Carla".


7. Encontrando e Removendo Frutas 🍎

  • Dica do Mestre 💡: indexOf() retorna o índice de um item. Se não encontrar, retorna -1. É uma ótima prática verificar se o item existe antes de tentar removê-lo!


Nível 2: Métodos Avançados e Boas Práticas

8. Dobrando os Números 🔢

  • Dica do Mestre 💡: map() cria um novo array. Ele passa por cada item e aplica uma função. O que essa função retorna é o que vai para o novo array.


9. Apenas Alunos Aprovados 🎓

  • Dica do Mestre 💡: filter() também cria um novo array. A função que você passa para ele deve retornar true (para manter o item) ou false (para descartar o item).


10. Somando o Carrinho de Compras 💰

  • Dica do Mestre 💡: reduce() é usado para "reduzir" um array a um único valor. Ele usa um "acumulador". A sintaxe é reduce((acumulador, valorAtual) => logica, valorInicialDoAcumulador).


11. Combo de Métodos: Pares e Quadrados ✨

  • Dica do Mestre 💡: Encadeamento de métodos! Você pode chamar um método logo após o outro. O resultado do primeiro (filter) se torna o array que o segundo (map) vai usar.


12. Batalha Naval 🚢

  • Dica do Mestre 💡: Pense em coordenadas: array[linha][coluna]. Lembre-se que a contagem de linhas e colunas também começa em zero!


13. A Cópia Segura 🛡️

  • Dica do Mestre 💡: O operador spread ... "espalha" os itens do array original dentro de um novo array, criando uma cópia independente (rasa).


14. Filtrando Produtos em Estoque 📦

  • Dica do Mestre 💡: filter funciona perfeitamente com arrays de objetos! Na sua função de callback, você pode acessar as propriedades de cada objeto.


Nível 3: Dominando os Arrays

15. Organizando o Placar 🏆

  • Dica do Mestre 💡: Por padrão, sort() trata tudo como texto! Para números, você precisa fornecer uma função de comparação: (a, b) => a - b para ordem crescente e (a, b) => b - a para decrescente.


16. Encontrando o Primeiro Vencedor 🥇

  • Dica do Mestre 💡: find() é como um filter, mas ele para e retorna o primeiro elemento que satisfaz a condição. Se não encontrar ninguém, retorna undefined.


17. O Tradutor de Frases ✍️

  • Dica do Mestre 💡: split(' ') quebra a string nos espaços. join('-') junta os itens do array usando um hífen como "cola".


18. Achatando Listas de Tarefas 📚

  • Dica do Mestre 💡: flat() é o método perfeito para "desempacotar" arrays que estão dentro de outros arrays, criando um novo array de nível único.


19. A Foto vs. a Edição 🖼️✂️

  • Dica do Mestre 💡: Lembre-se da analogia: slice() é como tirar uma foto de uma parte do álbum (o original não se altera). splice() é como usar uma tesoura e cortar o álbum de verdade (a mudança é permanente). Fique atento aos parâmetros: slice(inicio, fim) vs. splice(inicio, quantidade_a_remover).


20. Desafio Final do Ninja 🥷

  • Dica do Mestre 💡: Este é o ápice do encadeamento de métodos. filter primeiro, para reduzir a lista. map em seguida, para transformar os itens restantes.

Atualizado