收藏
回答

为何在json数组追加元素一直undefine?

想按zhenrong这个[{}]json数组中的数据去另一个表里查数据,然后把结果添加到数组中每个json新追加属性,结果最后结果console中是正常的,但是输出追加的元素却是undefine,在最底层循环里有大概率可以输出,但是跳到高一级循环就全是undefine了。求大佬指导。

我试过把元素名称改为英文也是一样的结果

代码如下,调试器截图

 setColor: function(zhenrong) {
    for (let i = 0; i < zhenrong.length; i++) {
      for (let j = 1; j < 7; j++) {
        db.collection("kuaileTD_hero").where({
          '名字': zhenrong[i]['英雄' + j]
        }).get({
          success(res) {
            console.log("当前查的是第",i,"阵容第",j,"英雄",res)
            zhenrong[i]['颜色' + j] = res.data[0]['稀有度']
            console.log("in_for_j", zhenrong[0]['颜色1'])
          // var new_zhenrong = []; 
          // zhenrong.map(item => { item[color+j] = res.data[0]['稀有度']; new_zhenrong.push(item); })
          }
        })
      }
      // console.log(zhenrong)
      console.log("in_for_i", zhenrong[0]['颜色1'])
    }
    console.log(zhenrong)
    console.log(zhenrong[0])
    console.log("setcolor_over",zhenrong[0]['颜色1'])
    console.log("setcolor_over", zhenrong[0].yanse)
    return zhenrong
  }

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

1 个回答

  • Admin ²º²³
    Admin ²º²³
    2020-02-29

    没仔细看代码,大概知道这个是异步问题。

    db.collection("kuaileTD_hero").where({
              '名字': zhenrong[i]['英雄' + j]
            }).get({
              success(res) {
    用await一下吧。
    
    2020-02-29
    有用 1
    回复 1
    • 'Seraph|.
      'Seraph|.
      2020-02-29
      谢谢。百度了下async和await 搞定了。
      2020-02-29
      回复
登录 后发表内容
问题标签