先看代码构造:
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)))