先看代码构造:
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;
}
数组构造:
数组内的对象构造:
{
"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 属性,然而发现这两个属性被提前加到了 console 的 theData 对象里。
这是为什么呢?
我想大略是这个起因,因为 js 看到你 console 这个对象,但前面又对这个对象进行了操作,所以会等你操作完再输入这个对象,这就导致了输入的后果和本人设想的不一样。能够加 debugger,而后鼠标悬浮下来看实时的数据内容。
如果想长期输入这个 theData 对象,能够这么做,先转为字符串再转为对象输入,相似深拷贝的思维。这样程序执行到这里,就会立即输入。
console.log(` 每个历史音讯 ${i}`,JSON.parse(JSON.stringify(theData)))