Llevo unos dias volviendome loco, tengo este cacho de codigo, donde añado una nueva clave a un objeto en typescript.
surveys.forEach((survey) => {
this.logger.log(JSON.stringify(survey))
Object.assign(survey, { userStatus: 'answered' })
this.logger.log(JSON.stringify(survey))
})
Y el log en ambos puntos es identico, ignorando el elemento q le he metido.
He probado de todo, haciendo un simple survey.userStatus='answered', pasandolo a un map, y nada. Sin embargo, si me deja cambiar keys q ya existieran previamente.
Al final mi solución ha sido la de rehacer por completo el array.
let newSurveys = []
surveys.forEach((survey) => {
let tmpObj = JSON.parse(JSON.stringify(survey))
this.logger.log(JSON.stringify(tmpObj))
Object.assign(tmpObj, { userStatus: 'answered' })
this.logger.log(JSON.stringify(tmpObj))
newSurveys.push(tmpObj)
})
Y asi funciona correctamente, pero quiero saber q es lo que pasa, q estoy haciendo mal o q se me escapa de JS para q no me altere la estructura del array.