微信小程序如何在遍历中修改data的值

data: {
    personData:[100,200,300,400,500,600]
},
onLoad: function(options) {
    this.Limit()
},
limit(){
    var _this=this;
      this.data.personData.forEach(item=>{
      if (item>400) {
        对大于400的项进行处理
      }
   })
}

刚接触微信小程序有个不太明白的地方, 就是在上面的forEach中要对大于400的项进行修改,微信小程序里需要调用this.setData(),但是拿到的是全局的内容,如何像js中一样使用this修改呢

阅读 10.4k
2 个回答

可以先用一个变量保存处理后的值,全部重新处理完再重新赋值setData。

limit(){
    var _this=this;
    var temp = []
      this.data.personData.forEach(item=>{
      if (item>400) {
        temp.push(item) //对大于400的项进行处理,处理后再setData
      }
   })
    this.setData({personData:temp})
}
this.setData({
    ["personData.0"]: "设置角标为0的内容"
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进