先看代碼結(jié)構(gòu):
console.log("歷史消息res",res)
for (let i = 0; i < res.result.length; i++) {
let theData = JSON.parse(res.result[i].payload);
theData.sendTime = res.result[i].ms;
console.log(`每個歷史消息${i}`,theData)
theData.sendHour = formatTimestamp(theData.sendTime).hour;
theData.sendMinute = formatTimestamp(theData.sendTime).minute;
}
數(shù)組結(jié)構(gòu):

數(shù)組內(nèi)的對象結(jié)構(gòu):
{
"msg":"222222",
"avatar":"[https://hqjynanj.oss-cn-shenzhen.aliyuncs.com/web/skylive/images/live_user1.png](https://hqjynanj.oss-cn-shenzhen.aliyuncs.com/web/skylive/images/live_user1.png)",
"role":2,
"msgType":0,
"sendTime":1603942259000,
"uid":"1010561896",
"nickName":"23123"
}
輸出:

這里的邏輯可以看到,原本是想先輸出theData再對theData加sendHour和sendMinute屬性,但是發(fā)現(xiàn)這兩個屬性被提前加到了console的theData對象里。
這是為什么呢?
我想大概是這個原因,因為js看到你console這個對象,但后面又對這個對象進行了操作,所以會等你操作完再輸出這個對象,這就導致了輸出的結(jié)果和自己想象的不一樣??梢约觗ebugger,然后鼠標懸浮上去看實時的數(shù)據(jù)內(nèi)容。
如果想臨時輸出這個theData對象,可以這么做,先轉(zhuǎn)為字符串再轉(zhuǎn)為對象輸出,類似深拷貝的思想。這樣程序執(zhí)行到這里,就會立刻輸出。
console.log(`每個歷史消息${i}`,JSON.parse(JSON.stringify(theData)))
