Fiquei com umas dúvidas quando comecei a olhar os códigos da galera aqui. Sou iniciante e não estava entendendo exatamente como as pessoas fizeram, apenas entendia que funcionava, mas não o porquê do código funcionar. Resolvi então fazer um código e explicar ele para caso alguém estiver com as mesmas dúvidas que eu.
Obs: se algo estiver errado, por favor avise!
Código:
//constantes:
const idadeStefany = 21;
const idadesAmigos = [idadeStefany, 20, 23, 18, 7];
const proximasIdades = []
const proximas5Idades = []
//funções:
//calcula a idade de Stefany daqui 1 ano
function calculaProximaIdade(idade) {
idade += 1; //soma 1
console.log(idade);
}
//calcula a idade de Stefany e amigos daqui 1 ano
function calculaProximasIdades(idades) {
for (let i = 0; i < idades.length; i += 1) {
proximasIdades[i] = idades[i] + 1; //soma 1 a todas as idades sem somar diretamente à idadesAmigos
}
console.log(proximasIdades);
}
//calcula a idade de Stefany e amigos daqui 5 anos
function calcula5ProximasIdades(idades) {
for (let i = 0; i < idades.length; i += 1) {
proximas5Idades[i] = idades[i] + 5; // igual a função anterior, porém soma agora soma 5 anos
}
console.log(proximas5Idades);
}
//executa as funções:
calculaProximaIdade(idadeStefany);
calculaProximasIdades(idadesAmigos);
calcula5ProximasIdades(idadesAmigos);
Só pra firmar o porquê do código não somar diretamente à idadesAmigos (foi aqui que eu fiquei confuso de primeira, e acredito que não fui só eu):
O código fala para o computador o seguinte:
"olha, a lista (array) proximasIdades é basicamente lista (array) idadesAmigos, MAS é diferente pois ele é 5 números a mais." Assim o computador entende e salva proximasIdades em um endereço diferente, em vez de editar diretamente idadesAmigos .