Of course
let object = {person: {
name: '',
age: 0
}};
let list = [...Array(2)].map(x => ({...object}));
console.log( 'object are differents', list[0] !== list[1] );
console.log( 'person are differents', list[0].person !== list[1].person );
Just change with
let object = {person: {
name: '',
age: 0
}};
let list = [...Array(2)].map(x => ({ person: {name:'', age:0}}) );
console.log( 'object are differents', list[0] !== list[1] );
console.log( 'person are differents', list[0].person !== list[1].person );
Your error is that destructuring is not a deep copy. So you use always the same person object.
{...object}
is same as
{ person: object.person }
Edition
As you want a deep copy of object, this is how you can do it very simply:
let object = {person: {
name: '',
age: 0
}};
let list = [...Array(2)].map(x => {
return JSON.parse(JSON.stringify(object));
});
console.log( 'object are differents', list[0] !== list[1] );
console.log( 'person are differents', list[0].person !== list[1].person );