微信小程序更新二维数组中的对象或数组的属性值,这里可能有两种情况
1、微信小程序更新二维数组中的对象的属性值
更新二维数组中的某个对象的属性值,代码如下
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>
运行效果如下图
2、微信小程序更新二维数组中的数组的属性值
更新数组中的数组的属性值
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>
运行效果如下图