收藏
回答

大神求解 这个怎么会多一条数据 length被当成一条数据输出了

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

- 当前 Bug 的表现(可附上截图)


- 预期表现


- 复现路径


- 提供一个最简复现 Demo

 

这个是代码


最后一次编辑于  2018-11-27  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

3 个回答

  • 微盟
    微盟
    2018-11-27

    currData初始化为对象,执行Array.prototype.push.apply(currData, jsonObj.object)使其成为了伪数组(key值为0,1,2..索引并有length属性的对象),可以通过Array.prototype.slice.call(currData)转成数组。

    2018-11-27
    赞同 1
    回复
  • 卢霄霄
    卢霄霄
    2018-11-27

    把数组变成对象?你用的啥方法啊

    2018-11-27
    赞同
    回复 5
    • AA想着你们
      AA想着你们
      2018-11-27

       

       

      var currData = {};

                if (_this.data.pageNum == 1) {

                  currData = jsonObj.object;

       

                }

      jsonObj.object;是一个json字符串


      2018-11-27
      回复
    • 卢霄霄
      卢霄霄
      2018-11-27回复AA想着你们

      啥?能做个简单的代码片段吗?

      https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

      2018-11-27
      回复
    • AA想着你们
      AA想着你们
      2018-11-27回复AA想着你们

       然后就莫名其妙多了一个  其他的都能用  就这个出来了length

      2018-11-27
      回复
    • AA想着你们
      AA想着你们
      2018-11-27回复卢霄霄

       我把代码整出来 你看下

      2018-11-27
      回复
    • 卢霄霄
      卢霄霄
      2018-11-27回复AA想着你们

      这是你后台给你的就错了的吧

      2018-11-27
      回复
  • AA想着你们
    AA想着你们
    2018-11-27

     

      loadSignReplyInfo: function() {

    var _this=this  

        wx.request({

          url:""

          success: function(res) {

            console.log("reply");

            console.log(res);

            //var jsonObj = JSON.parse(res.data);

            var jsonObj = res.data;


            if (jsonObj.statusCode == 200) {

      

              var currData = {};

              if (_this.data.pageNum == 1) {

                currData = jsonObj.object;


              } else if (_this.data.pageNum != 1) {

                currData = _this.data.signReplyList

                // currData = currData.concat(jsonObj.object);

                Array.prototype.push.apply(currData, jsonObj.object)

              }


              console.log("currData")

              console.log(currData)


              _this.setData({

                signReplyList: currData,

                replypageNum: pageNum + 1,

                replysearchLoading: false

              })

            }

            if (jsonObj.statusCode == 205) {

              _this.setData({

                replysearchLoading: false

              })


            }

          }

        })


      },


    2018-11-27
    赞同
    回复