收藏
回答

对象型数组添加字段?

let arr = [{id:1,name:"张三",num:10},{id:2,name:"李四",num:5},{id:3,name:"王二",num:8},{id:4,name:"麻子",num:6}]
arr.map(item=>{
  item.price = ""
  wx.request({
    url:"接口",
    success(res){
      item.price = res.data.data.price
    }
  })
})
console.log(arr) //[{id:1,name:"张三",num:10,price:5},{id:2,name:"李四",num:5,price:8},{id:3,name:"王二",num:8,price:10},{id:4,name:"麻子",num:6,price:10}]
<view wx:for="{{arr}}" wx:key="index">
    <view>{{item.num}}</view>
  <view>{{item.price}}</view>
</view>
//只显示name,并没有price

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

4 个回答

  • 微喵网络
    微喵网络
    2020-09-24

    添加之后setData了吗?

    2020-09-24
    有用 1
    回复 2
    • 听雨轩
      听雨轩
      2020-09-24
      用了
      2020-09-24
      回复
    • 听雨轩
      听雨轩
      2020-09-24回复听雨轩
      2020-09-24
      回复
  • 听雨轩
    听雨轩
    2020-09-24

    https://developers.weixin.qq.com/s/6HnNKBmy7FkQ 代码片段

    2020-09-24
    有用
    回复
  • .
    .
    2020-09-24
    map是返回一个新数组  你应该 let arr1 = arr.map(item=>去承接。打印arr1,且setData
    


    2020-09-24
    有用
    回复
  • 袁康
    袁康
    2020-09-24
     //修改数组中对象的值
        var printPrice = "item["+i+"].print_price";
        this.setData({
        [printPrice]: e.detail.value 
        });
        //修改对象中的属性值
        this.setData({
          ['aa.a']: 3
        })
        console.log(this.data.aa.a); //3
        //修改普通data值
        this.setData({
         currentValue: "bbb"
        })
    
    2020-09-24
    有用
    回复 14
    • 听雨轩
      听雨轩
      2020-09-24
      that.setData({
                  ['v.name']: 3
                })
      还是不行
      2020-09-24
      回复
    • 袁康
      袁康
      2020-09-24回复听雨轩
      var printPrice = “ 数组名[ ”+数组下标+“ ].修改的对象名”;
          this.setData({
          [printPrice]: e.detail.value
          });
      这样能看懂吗
      2020-09-24
      1
      回复
    • 袁康
      袁康
      2020-09-24回复听雨轩
      这里不对
      2020-09-24
      回复
    • 听雨轩
      听雨轩
      2020-09-24回复袁康
      本身就是一个空数组,请求到的数据放在空数组中,然后遍历给每一项加一个"name"字段
      2020-09-24
      回复
    • 听雨轩
      听雨轩
      2020-09-24回复袁康
      res.data.content.map((v,i)=>{
              var shopName = "item["+i+"].name"
              http.request("接口").then(resp=>{
                that.setData({
                  [shopName]: 3
                })
                console.log(resp.data.data)
              })
            })
            that.setData({
              list:res.data.content
            })
      2020-09-24
      回复
    查看更多(9)
登录 后发表内容
问题标签