收藏
回答

往数组中用Push添加元素,打印出来length=0,数组为空?

问题模块 框架类型 问题类型 终端类型 微信版本 基础库版本
框架 小程序 Bug 工具 6.5.3 2.4.1


如图_targets为数组,使用push 或者 splice方法添加元素后,

打印_targets能正常打印

打印_targets[0]为undefined

打印_targets.length为0


之后使用_targets时显示为空...


请问有遇到相同情况的吗?

有什么解决方法呢?



最后一次编辑于  2018-12-19  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 赵青山
    赵青山
    2018-12-20

    因为添加数据是异步的,这里基本的顺序是,先打印_targets[0]后再添加元素,为什么_targets能正常打印,因为控制台打印对象只有在点开的时候才会输出对象的值,你用console.log(JSON.stringify(_targets));看看_targets是否有值?

    2018-12-20
    赞同
    回复 2
    • 李查尔斯.进化
      李查尔斯.进化
      2018-12-20

      额,我还以为写在闭包里就能保证先执行完循环再打印的时候应该是有数据的,结果还是逃不出异步吗?

      第42行是打印出来的内容,啥也没有。。。请问代码上我应该怎么改才行,谢谢了

      2018-12-20
      回复
    • 赵青山
      赵青山
      2018-12-20

      如果需要在所有的promise执行完毕后才执行,用promise.all

      2018-12-20
      回复
  • 杨李云
    杨李云
    2018-12-19


    在“此书可用” 下面打印试试?

    2018-12-19
    赞同
    回复 1
    • 李查尔斯.进化
      李查尔斯.进化
      2018-12-20


      第31行打印出来了,应该是正常加进去了。

      2018-12-20
      回复