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

pacientes[i]

Olá pessoal,

Ótima aula porém me sobrou uma dúvida, não consegui entender muito bem o porquê de termos de criar uma nova variável (paciente= pacientes[i]) no início do Loop.

3 respostas

Olá Thiago, tudo bem com você?

Foi a abordagem que o professor escolheu para manter o código anterior, veja:

    var tdPeso = paciente.querySelector(".info-peso");
    var peso = tdPeso.textContent;

    var tdAltura = paciente.querySelector(".info-altura");
    var altura = tdAltura.textContent;

    var tdImc = paciente.querySelector(".info-imc");

Todo esse código feito em aulas anteriores tinha como objetivo apenas fazer para um elemento com o nome da variável paciente, agora como temos um array de pacientes e estamos percorrendo 1 a 1 teríamos que mudar para:

    var tdPeso = pacientes[i].querySelector(".info-peso");
    var peso = tdPeso.textContent;

    var tdAltura = pacientes[i].querySelector(".info-altura");
    var altura = tdAltura.textContent;

    var tdImc = pacientes[i].querySelector(".info-imc");

Para indicar que queremos o elemento na posição i** do array de **pacientes, entretanto o instrutor achou mais fácil a abordagem de manter o código que já estava pronto e dizer que:

var paciente = pacientes[i]

Dessa maneira temos:

    var tdPeso = pacientes[i].querySelector(".info-peso");

// É igual pois pacientes[i] = paciente

    var tdPeso = paciente.querySelector(".info-peso");
`

Foi apenas uma questão de comodidade :)

Abraços e Bons Estudos!

Eai Geovani, obrigado pela explicação.

Só pra fixar o conteúdo de FOR pra mim, eu tenho duas dúvidas:

1- quando eu gero um loop com o seguinte parâmetro:

for (var x = 1 ; x = 5 ; x++) console.log(x)

ele nunca para. Por que acontece isso? Em teoria quando chegasse no valor 5 ele deveria parar.

2- consigo fazer esse mesmo tipo de loop (fazer com que os numeros se repitam até a expressão final) da mesma forma utilizada no video? Por exemplo:

for (var i = 1 ; i = 5 ; i++){ var x = 1; var xis = x[i] console.log(xis) }

Ou algum código do tipo? Até porque eu já testei esse e não funcionou rs..

Valeu!

solução!

Opa Thiago,

ele nunca para. Por que acontece isso?

A questão foi que você declarou de maneira errada, veja:

var x = 1 ; x = 5 ; x++

Quando estamos utilizando o for temos 3 parâmetros:

  1. Uma variável inicial
  2. Uma comparação ( que será utilizada para parar nosso laço quando for falsa)
  3. Uma alteração na variável inicial

Na segunda parte quando você diz x=5, no caso, não estamos fazendo uma comparação, apenas dizendo x vale 5 agora, normalmente iremos utilizar os operadores relacionais para comparar esses valores:

  • maior ( > ) e menor ( < )
  • maior ou igual ( >= ) e menor igual ( <=)

Então no caso o que queremos é:

for( var i = 1; i <= 5; i++){
    console.log(i)
}

Ou seja, inicialize i com valor 1, enquanto i for menor ou igual à 5, iremos incrementar a variável i em +1 em cada iteração

2- consigo fazer esse mesmo tipo de loop (fazer com que os numeros se repitam até a expressão final) da mesma forma utilizada no video? Por exemplo:

Então, para fazer o que o professor fez, precisamos de um array, então vamos supor que temos:

var numeros = [ 7, 5, 2, 1, 8, 9, 15, 72 ];

E dessa maneira, todo array tem a propriedade length para saber a quantidade de elementos, dessa forma podemos:

for( var i = 0;  i < numeros.length; i++ ){
    console.log(numeros[i])

Ou seja, inicie a variável i em 0, enquanto i for menor que numeros.length ( no caso 8), incremente em 1 a variável i por iteração:

Dentro do nosso for estamos falando, pegue dentro do array de números, o valor que está na posição ( através da notação de colchetes [ ]) i, então por exemplo na primeira iteração:

console.log( numeros[i] )
console.log( numeros[0] )
>> 7

Veja que não podemos usar menor igual dentro desse for pois dessa forma iriamos de 0 até 8, e precisamos lembrar que um array vai da posição 0, até (quantidade - 1)

No seu exemplo não podemos fazer x[i], pois você declarou x como apenas um número e não um array, o [ ] serve para obter posições do array :)

Conseguiu Compreender? Abraços e Bons Estudos!