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.
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.
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!
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:
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:
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!