我正在努力更新所有“新”屬性太假。下面是一個示例物件。
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"
}
}
當我嘗試以下操作時,我將物件結構更改為陣列,但我需要維護物件/鍵結構 - 只需將新值更改為 false。
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)
回傳物件是一個標準陣列 - map 這樣做......例如:0,1,2鍵......
如何維護物件結構并更改新的屬性。
謝謝
uj5u.com熱心網友回復:
您可以map()使用物件條目,將new值更改為false并回傳條目以從中創建新物件。
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);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/392448.html
標籤:javascript 反应
