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 ?
 
    