Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como imprimir o nome do paciente?

Consegui isolar a função que monta o paciente, porem, estou com duvida de como utiliza-la para exibir o nome dos pacientes.

No arquivo imprime-nome.js eu fiz da seguinte forma:

percorreArray(trsPacientes, montaPaciente, function() {
  console.log(pacienteAtual.nome);
});

Porem nada é imprimido no console. Eu acredito que seja pelo fato de pacienteAtual ser acessivel apenas dentro da função montaPaciente. Mas como eu faço então para imprimir os nomes?

1 resposta
solução!

A função de percorreArray vai receber dois parâmetros, o primeiro seria um array, e o segundo, uma função que ele deve executar. Exemplo:

function percorreArray(trsPacientes, comportamento) {

    for(var posicaoAtual = 0; posicaoAtual <= trsPacientes.length - 1; posicaoAtual++){

        var pacienteTrAtual = trsPacientes[posicaoAtual];
        comportamento(pacienteTrAtual);
    }
}

Perceba que no exemplo acima, ele faz um loop no primeiro parâmetro da função (que deve ser um array). Para cada item, ele executa a função enviada no parâmetro "comportamento", ou seja ele é executada recebendo como parâmetro um dos items do array (que é o primeiro parâmetro da função)

O "For" vai varrer o array de linhas (TR) de pacientes, e vai passar para a função "comportamento" apenas uma linha (TR).

A forma de usar esta função seria esta:

var trsPacientes = document.getElementsByClassName("paciente");

precorreArray(trsPacientes, function(pacienteTr){

   var tdNome = pacienteTr.getElementsByClassName("info-nome")[0]; 

    var pacienteAtual = { 
        nome : tdNome.textContent
    };    

    console.log(pacienteAtual.nome); 
});

O exemplo acima é simplificado, mas ajuda a entender o conceito, O primeiro parâmetro é o array de linhas da tabela, o segundo parâmetro é uma função anônima que recebe 1 parâmetro, que vai ser o conteudo de somente 1 linha do array de TRs de pacientes.

Dentro da função anônima, se extrai o nome, selecionando o conteudo enviado no parâmetro que estiver marcado com a classe "info_nome". Depois disso se cria o objeto PacienteAtual e se faz a impressão do conteúdo usando o console.log