Supondo que eu queira trabalhar com múltiplas arrays, mas para isso, preciso evitar que uma altere o valor de outra. Como faço para que isso não ocorra?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Supondo que eu queira trabalhar com múltiplas arrays, mas para isso, preciso evitar que uma altere o valor de outra. Como faço para que isso não ocorra?
Olá, Natan! Entendi sua dúvida sobre como evitar que uma array altere o valor de outra. Isso é um problema comum quando se trabalha com passagem por referência, como é o caso do JavaScript ao lidar com arrays.
No código de Stefany, a função calculaProximasIdades(idades) está alterando diretamente a array idadesAmigos, pois em JavaScript, arrays são passadas por referência, e não por valor. Isso significa que qualquer modificação feita na array dentro da função afetará a array original.
Para evitar isso, você pode criar uma cópia da array original antes de modificá-la. Assim, as alterações serão feitas apenas na cópia e a array original permanecerá intacta. No JavaScript, você pode fazer isso usando o método slice(), que retorna uma cópia da array. Veja como ficaria a função calculaProximasIdades(idades):
function calculaProximasIdades(idades) {
let idadesCopia = idades.slice(); // cria uma cópia da array idades
for (let i = 0; i < idadesCopia.length; i += 1) {
idadesCopia[i] += 1;
}
console.log(idadesCopia);
}
Agora, mesmo que idadesCopia seja modificada, a array idades original não será afetada.
Espero ter ajudado e bons estudos!