1
resposta

Problema do programa da Stefany

Não consegui entender exatamente o que preciso fazer para corrigir o código.

Listas são passadas por referência para funções. Dessa forma, se modificamos seu conteúdo dentro da função, a lista é modificada. Por outro lado, isso não acontece com número, que são passados por valor. Sabendo disso, tente arrumar o programa de Stefany e teste o resultado!

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);

calculaIdadesDaqui5Anos(idadesAmigos);
1 resposta

Olá Lucas, tudo bem?

Fiz um exemplo do código aqui e espero que ajude. A ideia seria modificarmos o valor passado como número na primeira função para referencia, como é feito na segunda e terceira.

Neste caso utilizei um recurso novo da especificação Javascript (ES6) que se chama spread-operator que consisti numa forma de acessar os elementos de um array de forma individual.

function calculaProximaIdade(idade) {
    for (let i = 0; i < idade.length; i++) {
        idade[i] += 1
    }
    console.log(idade);
}

function calculaProximasIdades(idades) {
    calculaProximaIdade(idades)
    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);

calculaIdadesDaqui5Anos(idadesAmigos);

Espero ter ajudado!! Qualquer dúvida só chamar

Um abraço e bons estudos!!! :-)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software