1
resposta

Sugestão de resolução

Criei um novo array destro da função que calcula as idades no final do ano, então copiei as idades de Stefany e seus amigos. Assim quando a função que calcula as idades com cinco anos a mais fica com a referência original.

function calculaIdadesFinalDoAno(idades) {
    let idadesFinalDoAno = [];

    for(let i = 0; i < idades.length; i++) {
    idadesFinalDoAno.push(idades[i]);
  }

  for(let i = 0; i < idadesFinalDoAno.length; i++) {
    idadesFinalDoAno[i] += 1;
  }

  console.log("Idades de Stefany e seus amigos no final do ano: " + idadesFinalDoAno);
}
1 resposta

Olá Allan, tudo bem? Pelo que entendi, você está criando um novo array dentro da função que calcula as idades e copiando as idades de Stefany e seus amigos para esse novo array. No entanto, quando você aplica a função que calcula as idades com cinco anos a mais, a referência original é mantida.

Uma possível solução seria criar uma cópia do array original antes de passá-lo para a função que calcula as idades com cinco anos a mais. Você pode fazer isso utilizando o método slice() do array, que retorna uma cópia do array original.

Por exemplo:

let idades = [20, 25, 30];
let idadesCopia = idades.slice(); // cria uma cópia do array original

calculaIdadesComCincoAnosAMais(idadesCopia); // aplica a função na cópia do array

console.log("Idades originais: " + idades); // imprime o array original
console.log("Idades com cinco anos a mais: " + idadesCopia); // imprime o array com as idades calculadas

Espero ter ajudado 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