3
respostas

Tratando a resposta da requisição

Só não entendi no finalzinho, que paciente é esse passado como parâmetro pro forEach e pra função adcionaPacienteNaTabela? Onde ele foi declarado?

var botaoAdicionar= document.querySelector("#buscar-pacientes");
botaoAdicionar.addEventListener("click", function(){
    console.log("Buscando pacientes...");
    var xhr= new XMLHttpRequest();
    xhr.open("GET","https://api-pacientes.herokuapp.com/pacientes");
    xhr.addEventListener("load", function(){
        var resposta= xhr.responseText;
        var pacientes= JSON.parse(resposta);
        console.log(pacientes);
        pacientes.forEach(function(paciente){
            adicionaPacienteNaTabela(paciente);
        });
    });
    xhr.send();
});
3 respostas

Boa noite Jorge, tudo bem?

A função forEach(), assim como outras funções de array, como filter(), map() e reduce(), requer como parâmetro uma função, função essa que tem como parâmetro o próprio elemento do array.

ex.:

Eu tenho o array notas que armazena alguns valores de notas da prova de uma turma.

const notas = [10, 9, 9.5, 7, 9.8, 6, 4.5]

Na função forEach(), eu posso acessar cada nota da seguinte forma:

notas.forEach(function(nota) {
    console.log(nota)
})

É como se fosse para cada nota do array notas -> escreva_na_tela(nota)

Entendeu?

Espero ter ajudado, bons estudos!

Entendi e não entendi. Se tenho a array notas, como no seu exemplo, e eu escrever banana no forEach, vou ter acesso a cada nota da mesma forma, independente de como eu chamar cada elemento? Aliás, obrigado Abraão!

Vai sim.

Pra falar a verdade, na funcao forEach(), a gente nao ta passando uma variavel, e sim uma funcao

Por poder exemplificar:

function funcaoPraIrDentroDoForEach(banana) {
    console.log(banana)
}

notas.forEach(funcaoPraIrDentroDoForEach)

Mas enfim, nao se prenda tanto a esses detalhes. E na duvida, pra saber se funciona, é só testar...