Podemos resolver esse problema com pouca alteração no código mantendo-o, assim, claro e de fácil leitura:
function calculaProximaIdade(idade) {
idade += 1;
console.log(idade);
}
function calculaProximasIdades(idades) {
for (let i = 0; i < idades.length; i += 1) {
idades[i] += 1;
}
console.log(idades);
}
function calculaIdadesDaqui5Anos(idades) {
for (let i = 0; i < idades.length; i += 1) {
idades[i] += 5;
}
console.log(idades);
}
const idadeStefany = 21;
calculaProximaIdade(idadeStefany);
const idadesAmigos = [idadeStefany, 20, 23, 18, 7];
calculaProximasIdades(idadesAmigos);
let idadesAmigosMaisUm = [].concat(idadesAmigos);
calculaIdadesDaqui5Anos(idadesAmigosMaisUm);
Note que foi adicionado a seguinte linha:
let idadesAmigosMaisUm = [].concat(idadesAmigos);
Por concatenar (unir em um só) a lista com as idades alteradas para mais um ano com uma lista vazia criamos uma nova lista independente da anterior, com valores que, apesar de serem iguais a lista prévia, são independentes. Essa lista, por fim, é usada na última função que dá as idades dos amigos daqui a 5 anos.