var arr = []; for (var i = 0; i < 3; i++) { arr.push(results[i].data); console.log(arr); }
上面的循环, 打印出来的 结果不是
【1】
【1,2】
【1,2,3】
而是
【1,2,3】
【1,2,3】
【1,2,3】
这个是什么原理。 不是同步的吗
(代码运行于微信小程序)
打印出来是这样的,
但是一展开,却全都一样
webkit内核对console.log()会延迟执行,惰性求值
参考链接
你的results的结构贴出来看下
json格式
...感觉是你results的问题,因为你的代码我自己测试时正常的
var arr = []; for (var i = 0; i < 3; i++) { arr.push(i); console.log(arr); } //------------------- [ 0 ] [ 0, 1 ] [ 0, 1, 2 ] undefined
arr
是数组,打印时调用的实际是arr
的引用,所以每次打印都会相同(同一个引用)。
如果想打印你想要的结果,可以先把arr
转成字符串
arr.toString() arr.join("")
都可以