1
resposta

Duvida passagem parametro na funcao anonima

Nessa instrucao para percorrer a array, dentro da funcao anonima é passada o parametro "paciente":

    pacientes.forEach(function(paciente) {
        adicionaPacienteNaTabela(paciente);
    });

Me perdi e quero saber daonde vem esse parametro "paciente" ? ele foi declarado anteriormente ? poderia passar qualquer coisa nessa instrucao tipo um xxxx ? pois nao me recordo aonde ele foi declarado ou o que é o "paciente" nesse contexto...

obrigado.

1 resposta

Bom dia Samuel. Este paciente realmente não foi declarado antes, ou seja, antes da criação da função anonima ele não existe. Quando você chama o método forEach em um array, ele espera receber uma função, e nessa função, OBRIGATORIAMENTE, você precisa passar o primeiro argumento, que é o valor atual de cada item do array. Ou seja, se o array tiver 5 itens, a função do forEach será executada 5 vezes, e para cada nova execução, o paciente é um item do array, começando pelo menor índice, até o último. Se você dar um console.log(paciente), antes do adicionaPacienteNaTabela, vai ver isto. Caso fosse necessário, você poderia passar mais um argumento, e este retornaria o índice no array do elemento paciente, exemplo:

pacientes.forEach(function(paciente, indice) {
    ...
})

Como eu disse, para ficar mais claro, utilize o comando console.log tanto em paciente como no indice, para você ver o que são ambos os valores. Vou deixar aqui a documentação do MDN falando sobre o forEach, e um outro artigo que também comenta de forma mais didática o assunto. Espero ter ajudado.

Só respondendo, você poderia colocar sim qualquer nome ao invés de paciente, por exemplo, xxxx, mas não é uma boa prática. Geralmente o nome que se da a este argumento é o nome de um único elemento da lista, por exemplo: Se você tiver um array chamado carros, o nome do argumento seria carro, e assim por diante, já que este argumento representa um único carro dentro do array,

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

https://www.devmedia.com.br/javascript-foreach-executando-uma-funcao-para-cada-elemento-de-um-array/39808