Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Passando posiçãoAtual como iteração

Eu fiz de um modo diferente, ao invés de usar [0], usei o contador "posiçãoAtual", já que o "getElementsByClassName" retorna um array achei que o contador pode ser melhor, porque ele itera de acordo com o tamanho do array (getElementsByClassName).

O que vocês acham?

window.addEventListener("load", function () {

    //sempre lembrar que ByClass retorna um Array
    var getPacientes = document.getElementsByClassName("paciente");

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

        var tdPeso = document.getElementsByClassName("peso")[posicaoAtual];
        var tdAltura = document.getElementsByClassName("altura")[posicaoAtual];

        var pacientes = {
            peso : tdPeso.textContent,
            altura : tdAltura.textContent,
            pegaImc : function () {
                if (this.altura <= 0) { // usar "this" para chamar o objeto que eu quero chamar (objeto pai)
                    console.log("Não foi possivel calcular IMC");
                    return false;
                } else {
                    var imc = this.peso / (this.altura * this.altura);
                    return imc;
                };
            }
        }

        document.getElementsByClassName("imc")[posicaoAtual].innerHTML = pacientes.pegaImc().toFixed(2);                            
    };
});
4 respostas
solução!

Olá Ismael! Está correto também. Nem sempre é necessário fazer exatamente como nas aulas ou nos exercicios. O que importa é você aprender os conceitos e os assuntos propostos nas aulas. Perceba que no seu caso você aprendeu que ao utilizar o getElementsByClassName () devolve uma Array com todos os elementos que possuem tal classe e é necessario fazer a seleção de cada elemento dentro dessa array para utiliza-lo. Então você utilizou um for () para fazer isso. Ou seja, você aprendeu os conceitos utilizados nas aulas, apenas aplicou-os de forma diferente. Não tem problema e o modo como você fez esta corretíssimo!

Bons Estudos!

Obrigado ^^

Estou lendo o livro "object-oriented javascript - second edition" e nele vi falando bastante de funções anônimas e funções de retorno (callback functions), não entendi bem como utiliza-las até ver aqui com exemplo prático. E em relação a lógica de programação, já tenho uma carga grande, vim de Java, Python, C++... :) Porém resolvi focar apenas em Java e Js. :)

Que bom que te ajudei Ismael e boa escolha! Java é uma excelente linguagem. Se não tiver mais dúvidas encerre o tópico.

Bons Estudos!