Article image
Ana Camargo
Ana Camargo07/12/2022 15:56
Compartilhe

Ajuda com desafio de código

  • #JavaScript

Oii, alguém poderia me dar uma luz nesse desafio de código?

eu não entendi direito o que o map tá fazendo no código e fiquei perdida por completo.

Se alguém puder ajudar, agradeço!!! :)

Compartilhe
Comentários (4)
Henrique Felix
Henrique Felix - 08/12/2022 19:32

Por nada!

Ana Camargo
Ana Camargo - 07/12/2022 20:04

Muito obrigada, gente! :)


Henrique, me ajudou DEMAISSSSS, eu tava morrendo com esses 3 pontinhos hahahahaha

muito obrigada mesmo

Henrique Felix
Henrique Felix - 07/12/2022 18:50

Boa noite!


Explicação rápida:

O código nas funções map está basicamente removendo os alimentos duplicados do array listas. Se uma lista possuir, por exemplo, os alimentos laranja, pera, laranja e banana, após a execução das funções map a lista terá os alimentos laranja, pera e banana (laranja não se repete).


Abaixo eu dei uma explicação mais detalhada. Caso tenha dificuldade eu sugiro pesquisar sobre arrays, Set, função map, função sort, função join, função forEach e spread operator, que são recursos que apareceram no desafio.

===========================================================


Explicação detalhada


A função map percorre cada elemento de um array, permitindo modificá-los e ao final retorna um novo array, de mesmo tamanho do anterior, com os elementos modificados. Por exemplo:

const nomes = ["Ana", "João", "Maria"]
// nome é o item atual do array que está sendo percorrido pela função
// index é a posição do item atual no array
const nomesModificados = nomes.map((nome, index) => "Olá, " + nome)


nomesModificados receberá um array com os valores:

["Olá, Ana", "Olá, João", "Olá, Maria"]


No caso do exercício a função map está sendo utilizada como se fosse o forEach, pois o seu retorno não está sendo armazenado em nenhuma variável.


Cada item do array listas também é um array. O primeiro map está removendo os elementos repetidos de cada item do array listas, transformando-os em um Set.


Set é uma estrutura de dados que aceita vários itens, igual ao array, mas nele não é possível ter itens repetidos. Se você tentar adicionar dois itens iguais no Set ele adicionará apenas 1 vez. Ex:

const nomes = new Set(["Ana", "Bruno", "Carlos", "Ana"])


O valor de nomes será

{ "Ana", "Bruno", "Carlos" }

Veja que tentei adicionar Ana duas vezes no Set, mas ele adicionou apenas uma.


O segundo map está preenchendo novamente os itens do array listas, agora com os valores únicos (sem se repetir, por causa do Set).

// Esses três pontinhos antes do i (...i) são conhecidos como spread operator.
// Esse operador preenche o array que está sendo criado com todos os itens do array i.
listaSet.map((i, d) => listas[d] = [...i])
Gabriel Gregorio
Gabriel Gregorio - 07/12/2022 18:12

Vou tentar ajudar , sou estudante, não tenho tanto conhecimento em JS mas map é map.

são duas listas certo?

então o listas.map serve para pegar todo valor passado e atribuir a uma variável, nesse caso ele quer chave e valor, onde o "i" será a chave e o valor será o "d", depois ele pega a variável listSet passsando o valor, d e criando uma nova lista sendo que do tipo Set já que ele não quer o "d" valor repetido. Espero ter conseguido explicar e caso eu esteja errado por gentileza me corrijam.