JavaScript forEach 循环:同步任务与执行顺序?-灵析社区

云端小仙女

目前生产出现了,handleDealData()返回的结果是[],并非是forEach执行后的数组,此问题偶发。 但是查了资料,解释说forEach的循环是同步任务。 handleDealData: function () { var self = this var initData = self.deepCopyInitData; console.log("🐅 initData--->", initData) var val = [] initData.forEach(function (obj, key) { var _newObj_ = { impartTarget: self.impartTarget, insuredMark: self.insuredMark, impartCode: obj.questList.notificationCode, showContent: obj.question, impartAnser: '', showAnser: obj.active ? self.identity + ':' + obj.remark : '', demo: obj.active ? obj.result : '' } var TAndF = Number(obj.active) var allResult = obj.allResult if (typeof obj.allResult !== "string") { allResult = allResult.join('#') } _newObj_.showAnser = _newObj_.showAnser.replace(_newObj_.showContent, '') _newObj_.impartAnser = TAndF + ',' + allResult val.push(_newObj_) }) return val }, chrome测试正常,返回非[] forEach的执行顺序是否跟机型、浏览器有关?

阅读量:18

点赞量:0

问AI
forEach是同步任务,所以就不要老盯着他看了,可以看看其他的地方。 handleDealData返回的val是空数组,val是根据initData循环来的,所以可以看下initData是不是空。 另外,console打印的是快照,也就是你点击展开显示的值和你打印时的值可能不一样(中间你修改了这个数据),所以,可以猜测也有可能是后面更改了val