普通对象
假如在小程序中有如下对象
data: {
man: {
name: 'laishaojiang',
age: 25,
blogs: 'https://blog.csdn.net/laishaojiang'
}
}
我想通过点击一个按钮更改对象中的age属性,一般人是这样写
click() {
let man = this.data.man
man.age = 18
this.setData({
man: man
})
},
好像有点繁琐,其实我们可以直接修改对象里面的属性
click() {
this.setData({
'man.age': 18
})
},
好了,接下来看更复杂的数组
直接看代码
/**
* 页面的初始数据
*/
data: {
list: [
{ age:18, name:'Tom' },
{ age: 19, name: 'Jerry' },
{ age: 20, name: 'Amy' }
]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
click() {
this.setData({
'list[0].name': 'Tony'
})
},
但是这样是固定写死要改的数组的第1项了,显然是不满足需求的,再优化下
click() {
let index = 0 // 这里就存个变量了
let key = `list[${index}].name`
this.setData({
[key]: 'Tony'
})
},