1
resposta

[Dúvida] Como evitar que isso acorra?

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?

1 resposta

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!