微信小程序更新二维数组中的对象或数组的属性值
更新二维数组中的某个对象的属性值,代码如下
js 代码
data: { familys:[ { familyName:贾家, users: [ {name:贾宝玉}, {name:贾元春}, {name:贾迎春}, {name:贾探春}, {name:贾惜春} ] }, { familyName:王家, users: [ {name:王熙凤}, {name:王夫人}, {name:薛姨妈} ] }, { familyName:薛家, users: [ {name:薛宝钗}, {name:薛蟠}, {name:薛宝琴} ] }, { familyName:史家, users: [ {name:贾母}, {name:史湘云} ] } ] }, updateUser() { let f = familys[ + 0 + ].familyName; this.setData({ [f]:江南甄家 }) },
核心处在于定义一个变量,把要修改的 familys[0].familyName 以字符串形式拼接起来
wxml 代码
<view> <view wx:for="{ {familys}}" wx:key="*this"> <view> <text>{ {item.familyName}}</text> <view></view> <text wx:for="{ {item.users}}" wx:for-item="userItem" wx:key="userItem"> <text>{ {userItem.name}}</text> <text>,</text> </text> </view> </view> <view> <button bindtap="updateUser">更新</button> </view> </view>
运行效果如下图
更新数组中的数组的属性值
js 代码
data: { familys:[ { familyName:贾家, users: [ {name:贾宝玉}, {name:贾元春}, {name:贾迎春}, {name:贾探春}, {name:贾惜春} ] }, { familyName:王家, users: [ {name:王熙凤}, {name:王夫人}, {name:薛姨妈} ] }, { familyName:薛家, users: [ {name:薛宝钗}, {name:薛蟠}, {name:薛宝琴} ] }, { familyName:史家, users: [ {name:贾母}, {name:史湘云} ] } ] }, updateUser() { let f = familys[ + 0 + ].users[+ 0 +].name this.setData({ [f]: 甄宝玉 }) },
思路和上边一样,用拼接字符串的形式
wxml 代码
<view> <view wx:for="{ {familys}}" wx:key="*this"> <view> <text>{ {item.familyName}}</text> <view></view> <text wx:for="{ {item.users}}" wx:for-item="userItem" wx:key="userItem"> <text>{ {userItem.name}}</text> <text>,</text> </text> </view> </view> <view> <button bindtap="updateUser">更新</button> </view> </view>
运行效果如下图
上一篇:
uniapp开发微信小程序-2.页面制作