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);
};
});