微信小程序用setData修改数组或对象中的一个属性值



微信小程序用setData修改数组或对象中的一个属性值。

在page中有如下数组

复制代码
 1 data: {
 2     info:[
 3       {
 4         name:"yuki",
 5         tou:"../img/head.jpg",
 6         zGong:130,
 7         gMoney:222222
 8       },
 9       {
10         name: "yuki",
11         tou: "../img/head.jpg",
12         zGong: 130,
13         gMoney:222222
14       },
15       {
16         name: "yuki",
17         tou: "../img/head.jpg",
18         zGong: 130,
19         gMoney:222222
20       },
21       {
22         name: "yuki",
23         tou: "../img/head.jpg",
24         zGong: 130,
25         gMoney:222222
26       },
27       {
28         name: "yuki",
29         tou: "../img/head.jpg",
30         zGong: 130,
31         gMoney:222222
32       }
33     ]
34   }
复制代码

需求:把info[0].gMoney修改成1

一般情况下,我们会这样写

 

但很明显,编辑器已经报错了。


 

解决方法如下:

第一步:先用一个变量,把(info[0].gMoney)用字符串拼接起来。

第二步:将变量写在[]里面即可。

 

具体写法如图:

复制代码
1 onLoad: function () {
2       var that=this;
3       var up = "info[" + 0 + "].gMoney";//先用一个变量,把(info[0].gMoney)用字符串拼接起来
4       that.setData({
5         [up]:1
6       })
7   }