收藏
回答

对象里显示数组为空,可是展开对象里面是有数据的啊,小程序bug?有偿!

有偿提问,解决了,私聊加微信,我给你发红包(一顿饭钱),急急急!!!

回答关注问题邀请回答
收藏

5 个回答

  • 阿宇
    阿宇
    2021-05-12

    终于解决了 forEach 的问题 不能用 async 和 await 换成普通for循环就好了

    2021-05-12
    有用 1
    回复
  • 五百
    五百
    2021-05-11

    这是控制台的问题,打印的时候是打印时候的值,鼠标点开又是点开时候的值,这中间的时间段肯定是对这个数组做了修改了。

    把下面的代码复制到控制台跑一下就知道了

    var a = {b: []};
      console.log(a);//此时打印的是一个空数组,如果在下面定时器执行之后再点开对象就会出现楼主说的情况
      setTimeout(()=>{
          a.b.push(1);
          a.b.push(2)
    },2000)
    
    2021-05-11
    有用
    回复 5
    • 阿宇
      阿宇
      2021-05-11
      对 确实修改来着
      2021-05-11
      回复
    • 五百
      五百
      2021-05-12回复阿宇
      去哪领盒饭
      2021-05-12
      回复
    • 阿宇
      阿宇
      2021-05-12回复五百
      其实 还没有解决 我不是加了await吗 19行都能打印 为啥20行获取不到呢?
      2021-05-12
      回复
    • 五百
      五百
      2021-05-12回复阿宇
      很明显20行之前是空数组,你修改完数组再打开了对象,控制台就这样
      2021-05-12
      回复
    • 阿宇
      阿宇
      2021-05-12回复五百
      我私聊加您微信
      2021-05-12
      回复
  • Ray
    Ray
    2021-05-11

    打印的时候把内容包在JSON.parse(JSON.stringify())里面

    2021-05-11
    有用
    回复 1
    • 阿宇
      阿宇
      2021-05-12
      还是不行
      2021-05-12
      回复
  • 神经蛙
    神经蛙
    2021-05-11

    cityInfo['cityWeatherArr']

    2021-05-11
    有用
    回复 1
    • 阿宇
      阿宇
      2021-05-12
      还是空数组 😅
      2021-05-12
      回复
  • 老张
    老张
    2021-05-11

    谢邀。

    我一般console.log(111,xxx)。好知道哪个是哪个的log。

    2021-05-11
    有用
    回复 6
    • 阿宇
      阿宇
      2021-05-12
      我问的是这个么....
      2021-05-12
      回复
    • 阿宇
      阿宇
      2021-05-12
      控制台最右边不是有代码所在行吗 张哥 不会弄混的
      2021-05-12
      回复
    • 老张
      老张
      2021-05-12回复阿宇
      父对象里的子对象或者子数组有过异步赋值,可能会出现你这种情况,不影响你正常引用。
      2021-05-12
      回复
    • 老张
      老张
      2021-05-12回复阿宇
      我提示你加上111,因为你让我们回答的人花太多时间去对比哪个是哪个的log了。
      2021-05-12
      回复
    • 阿宇
      阿宇
      2021-05-12回复老张
      已解决 是foreach的问题
      2021-05-12
      回复
    查看更多(1)
登录 后发表内容