收藏
回答

数组中变量未定义问题,不知道该怎么解决啦?

数据:
orders[{
  clientID:1001
  productID:10001
},{
  clientID:1001
  productID:10002
},{
  clientID:1002
  productID:10001
}]
// 初期处理
  data: {
    editOrderInfoList:[{
      clientID:'',
      userName:'',
      productList:[]
    }]
  }
// onLoad处理
onLoad: function (options)
    wx.cloud.callFunction({
      name: 'searchAllOrder'
    }).then( async function(res) {
     
      const orders = res.result.data;
      var clientIDList = [];
      var j=0
      for (let i = 0; i < orders.length; i++) {
        if (clientIDList.indexOf(orders[i].clientID) < 0) {
          // 客户信息
          const clientResult = await db.collection('client').where({
            clientID: orders[i].clientID
          }).get()
          clientIDList.push(orders[i].clientID);
          _this.data.editOrderInfoList[j].clientID = clientResult.data[0].clientID;
          _this.data.editOrderInfoList[j].userName = clientResult.data[0].userName;
          j++;
        }
}

现象:J=1,clientID=1002的时候出异常,TypeError: Cannot read property 'clientID' of undefined
大概是”_this.data.editOrderInfoList[j].clientID“出问题,不知道怎么解决啦,大神们


最后一次编辑于  11-19
回答关注问题邀请回答
收藏

4 个回答

  • 大灰狼
    大灰狼
    11-19

    OK啦,你们都好厉害

    11-19
    赞同
    回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    11-19

    // 初期处理
      data: {
        editOrderInfoList:[]
      }

    ---------=========

    if (clientIDList.indexOf(orders[i].clientID) < 0) {

        // 客户信息

        const clientResult = await db.collection('client').where({

            clientID: orders[i].clientID

        }).get()

        clientIDList.push(orders[i].clientID);

        _this.data.editOrderInfoList.push({

            clientID: clientResult.data[0].clientID,

            userName: clientResult.data[0].userName,

            productList: []

        })

    }



    11-19
    赞同
    回复
  • 秋音
    秋音
    11-19
    你那个里面不是只有一条记录吗,下标为0的时候当然可以,但是下标为1的时候就不行了啊
    11-19
    赞同
    回复
  • 🍉
    🍉
    11-19

    editOrderInfoList 只有一项,j为1时当然是undefined


    11-19
    赞同
    回复
问题标签