Copying an array variable to another variable
A common mistake newbies in JavaScript make, is referencing arrays instead of copying it when using the assignment operator.
let pokemons = ['pikachu', 'eevee', 'snorlax', 'charmander', 'charizad'];
// This will point (create a reference) new_pokemons to pokemons
let new_pokemons = pokemons;
new_pokemons.push('mewtwo');
console.log("new_pokemons = ", new_pokemons);
console.log("pokemons = ", pokemons);
Output:
new_pokemons = [ 'pikachu', 'eevee', 'snorlax', 'charmander', 'charizad', 'mewtwo' ] pokemons = [ 'pikachu', 'eevee', 'snorlax', 'charmander', 'charizad', 'mewtwo' ]
let pokemons = ['pikachu', 'eevee', 'snorlax', 'charmander', 'charizad'];
// This will create a copy of the pokemon array and save it as a new array
let new_pokemons = [...pokemons];
new_pokemons.push('mewtwo');
console.log("new_pokemons = ", new_pokemons);
console.log("pokemons = ", pokemons);
Output:
new_pokemons = [ 'pikachu', 'eevee', 'snorlax', 'charmander', 'charizad', 'mewtwo' ] pokemons = [ 'pikachu', 'eevee', 'snorlax', 'charmander', 'charizad' ]
In the second one, mewtwo is included only in new_pokemons
.