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?
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!