Seguinte, vamos entender aqui o código sem enrolação. O que eu entendi foi, temos um código que imprime onde tem o "console.log", que até então não tinha sido mostrado.
Primeira pt:
function calculaProximaIdade(idade) {
idade += 1;
console.log(idade);
}
Ele foi procurar o "calculaProximaIdade" que está lá embaixo:
const idadeStefany = 21;
calculaProximaIdade(idadeStefany);
OBS: não sei o que é "const", provavelmente vem de constante, porém não sei o que faz.
E aí, acontece o seguinte, ele coloca o "idadeStefany" para ser igual ao "idade", creio eu que fique assim, porque trata da mesma variável "calculaProximaIdade" ok, massa. Logo, "idade += 1", como já foi ensinado, isso é simplesmente somar 1. Massa. Ficou 22.
Vamos lá que tem mais. Chegando na pt 2, temos o seguinte:
function calculaProximasIdades(idades) {
for (let i = 0; i < idades.length; i += 1) {
idades[i] += 1;
}
console.log(idades);
}
E vamos lá, ele vai procurar o "calculaProximasIdades", que está aqui oh:
const idadesAmigos = [idadeStefany, 20, 23, 18, 7];
calculaProximasIdades(idadesAmigos);
Ele está com o "idadesAmigos" que já foi especificado que é uma lista, ok, ok, massa. Chegando então nesse código aqui, novamente, com uma lista agora:
function calculaProximasIdades(idades) {
for (let i = 0; i < idades.length; i += 1) {
idades[i] += 1;
}
console.log(idades);
}
E mais uma vez, o "idades" vai receber o valor de "idadesAmigos" porque faz parte da mesma variável "calculaProximasIdades". topzera. Entrando no laço 'for', acontece o seguinte, o "idades.length" provavelmente conta a quantidade de valores dentro da lista, que são 5. Massa. Ele vai repetir 5 vezes, passando por cada bloco da lista, e vai ficar:
0 é menor que 5, então i agora é 1
idades = 22.
1 é menor que 5, então i agora é 2.
idades = 23.
2 é menor que 5, então i = 3.
idades = 24.
3 < 5, então i = 4.
idades = 25.
4 < 5, então i = 5.
idades = 26.
Isso vai passar pelo 5 blocos da lista, 5 vezes. Logo, ficaria 26, 25, 28, 23, 12.
E aí eu não entendi mais, porque aparentemente isso era para dá 27, 26, 29, 24, 13.
Aí eu tive uma hipótese: Que poderia ter ficado o valor 22 da primeira função, porém, seria somente a "idadeStefany", e não é o caso, todos ficaram com +1. E agora? Quem poderá nos defender.