5
respostas

Criar outra constante é a melhor solução?

Eu acrescentei uma segunda constante" (idade5), que foi referenciada na função "calculaIdadesDaqui5Anos(idades5)" ao invés de referenciar a mesma função. Não sei se é o melhor método, mas funcionou.

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

const idades5 = [idadeStefany, 20, 23, 18, 7];
calculaIdadesDaqui5Anos(idades5);

22 (5) [22, 21, 24, 19, 8] (5) [26, 25, 28, 23, 12]

5 respostas

Oi Carlos, não é o melhor método, pois vc está repetindo código

isso é o suficiente

calculaIdadesDaqui5Anos(idadesAmigos);

const idades5 = [idadeStefany, 20, 23, 18, 7];

Mas essa é a questão proposta, quando o código está assim, o resultado no console sai:

` //const idades5 = [idadeStefany, 20, 23, 18, 7];

calculaIdadesDaqui5Anos(idadesAmigos);`

22

(5) [27, 26, 29, 24, 13]

(5) [27, 26, 29, 24, 13]

Somando 6 anos a cada idade, quando deveria somar 5 porque a primeira fómula soma 1 e afeta na segunda.

Carlos, eu rodei o seu código e o resultado é :

22
[22, 21, 24, 19, 8]
[27, 26, 29, 24, 13]

Rode aqui o código

Não sei o que dizer, quando abro o código assim no p5 ele não dá o resultado correto.

Existe algum motivo pra isso acontecer?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Carlos, isso é novidade para min

Array como parâmetro tem um comportamento diferente

Uma solução é enviar uma cópia do array 'idadesAmigos' [...idadesAmigos]


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


//const idades5 = [idadeStefany, 20, 23, 18, 7];
calculaIdadesDaqui5Anos([...idadesAmigos]);

// a const idadesAmigos continua a mesma
console.log(idadesAmigos)

Eu achei este artigo sobre o assunto JavaScript Arrays: Value vs Reference

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