Estoy luchando por actualizar todos los atributos "nuevos" demasiado falsos. A continuación se muestra un objeto de ejemplo.
const msgdata = { "1511207758": { "userid": "1000015977", "text": "hello", "new": false, "subjecttitle": null, "subjectcontent": null, "datetime": "2017-11-20T19:55:58.000Z" }, "1511277428": { "userid": "1000000000", "text": "hey hi", "new": false, "subjecttitle": null, "subjectcontent": null, "datetime": "2017-11-21T15:17:08.000Z" }, "1640341426": { "userid": "1000000000", "text": "hellow how are you?", "new": false, "subjecttitle": null, "subjectcontent": null, "datetime": "2021-12-24T10:23:45.706Z" }, "1640342296": { "userid": "1000000000", "text": "asdfasdf", "new": true, "subjecttitle": null, "subjectcontent": null, "datetime": "2021-12-24T10:38:16.089Z" }, "1640342382": { "userid": "1000000000", "text": "fxvfv", "new": true, "subjecttitle": null, "subjectcontent": null, "datetime": "2021-12-24T10:39:41.910Z" }}
cuando intento lo siguiente, arruino los cambios en la estructura del objeto a una matriz, pero necesito mantener la estructura del objeto/clave; simplemente cambie el nuevo valor a falso.
let newMessages = {} if (payload.length > 0) { payload.map((item) => { if (messagesData && messagesData[item.userid]) { newMessages = Object.keys(messagesData[item.userid].messages).map((key) => ({ ...newMessages[item.userid].messages[key], new: false })) } return true }) console.dir('newMessages') console.dir(newMessages)el objeto de retorno es una matriz estándar: el mapa hace eso... por ejemplo: 0,1,2 claves...
¿Cómo puedo mantener la estructura del objeto y simplemente cambiar el nuevo atributo?
gracias
Puede map() las entradas de los objetos, cambiar el new valor a false y devolver las entradas para crear un nuevo objeto.
const msgdata = { "1511207758": { "userid": "1000015977", "text": "hello", "new": false, "subjecttitle": null, "subjectcontent": null, "datetime": "2017-11-20T19:55:58.000Z" }, "1511277428": { "userid": "1000000000", "text": "hey hi", "new": false, "subjecttitle": null, "subjectcontent": null, "datetime": "2017-11-21T15:17:08.000Z" }, "1640341426": { "userid": "1000000000", "text": "hellow how are you?", "new": false, "subjecttitle": null, "subjectcontent": null, "datetime": "2021-12-24T10:23:45.706Z" }, "1640342296": { "userid": "1000000000", "text": "asdfasdf", "new": true, "subjecttitle": null, "subjectcontent": null, "datetime": "2021-12-24T10:38:16.089Z" }, "1640342382": { "userid": "1000000000", "text": "fxvfv", "new": true, "subjecttitle": null, "subjectcontent": null, "datetime": "2021-12-24T10:39:41.910Z" } } const result = Object.fromEntries(Object.entries(msgdata).map(([k, v]) => { return [k, { ...v, new: false }] })); console.log(result);