Today I discovered something that I don't understand so can you explain to me how it works :
let places = [
{ num: 1, name: 'a'},
{ num: 2, name: 'b'},
{ num: 3, name: 'c'},
]
const order = (arr, numOut) => {
let newArr = new Array(...arr)
newArr[1].num = numOut;
console.log(newArr);
}
order(places,3);
console.log(places);
// OUTPUT :
// [ { num: 1, name: 'a' }, { num: 3, name: 'b' }, { num: 3, name: 'c' } ]
// [ { num: 1, name: 'a' }, { num: 3, name: 'b' }, { num: 3, name: 'c' } ]
let places = [
{ num: 1, name: "a" },
{ num: 2, name: "b" },
{ num: 3, name: "c" },
];
const order = (arr) => {
let newArr = new Array(...arr);
newArr.push({ num: 4, name: "d" });
console.log(newArr);
};
order(places);
console.log(places);
// OUTPUT :
// [{ num: 1, name: 'a' },{ num: 2, name: 'b' },{ num: 3, name: 'c' },{ num: 4, name: 'd' }]
//[ { num: 1, name: 'a' }, { num: 2, name: 'b' }, { num: 3, name: 'c' } ]
So why the original array is modified while with the push method only the new one is modified ?