3
respostas

Duvidas nos Parametros da Arrow Function

fiquei com duvida na hora de passar os parametros, especificamente nesta parte nome.filter( (aluno,indice) => notas[indice] < 5 ) não sei se entendi bem, mas estou passando o resultado de uma função como parametro do filter, okay, dai me deixou confuso a parte (aluno,indice) no caso "aluno" seria algo como o "for each (r => elements)" elements do foreach? referenciando a cada elemento? e o indice é definido como int automaticamente por estar dentro de colchetes fazendo a variavel ser iniciada como zero? é isso?

3 respostas

Olá Rick

Nesse caso o parâmetro aluno ele faz a representação do array ao qual estará fazendo a comparação, que no caso do exemplo da aula é representado pela variável array notas. Já o parâmetro indice ele representa cada item do array de notas.

Caso ainda haja dúvidas posso montar um exemplo diferente da aula.

Espero ter ajudado.

Estou com a mesma duvida, poderia mostrar esse exemplo ?

Olá novamente Henrique

Peço desculpas pois na ultima resposta acabei passando uma informação errada sobre o primeiro parametro do método filter. O primeiro representa o valor atual qual o método filter esta percorrendo, montei um exemplo com a mesma estrutura mostrata em aula que fala mais sobre cada parametro do filter e mostra os valores em cada interação.

Segue juntamente o link de um artigo da Alura falando com mais detalhes do método filter: https://www.alura.com.br/artigos/manipulacao-de-array-com-map-filter-e-reduce

Também estou deixando o link do meu codepen com este exemplo caso queira compila-lo mais facilmente. https://codepen.io/alexdgoncalves/pen/MWOVBGO?editors=0012

Espero com este exemplo conseguir esclarecer suas dúvidas.

Abraços e bons estudos !!

const nomeDosAlunos = ['Ana','Marcos','Maria','Mouro']
const notaDosAlunos = [7,4.5,8,7.5]

//O método filter pode receber até três parametros

//o Primeiro e obrigatório é o valor atual do array
//o Segundo (opcional) é o indice, ele é quem representada cada item do array
// por ultimo o Terceiro, que é o o proprio array sendo percorrido
const reprovados = nomeDosAlunos.filter((valorAtual,indice,array) =>{
  console.log("Este é o indice: "+indice+" com o valor atual de: "+valorAtual);
  console.log("Aqui é o terceiro parametro: "+array)


 if (notaDosAlunos[indice] < 5){

   console.log("Valor que atende a condição proposta : "+valorAtual)
   //O valor atual, quando a condição for verdadeira.
   return valorAtual;
 }

})

console.log("Este é o array que o filter retornou: "+reprovados)