微信小程序:多层次对象数组的赋值、动态赋值
假设现有数据:,现需要访问数据“品牌二”,设置该属性值为“品牌三”
selectContent: [
{
itemTitle: "品牌",
itemContent: [
{
isChecked: false,
itemContentName: "品牌一"
}, {
isChecked: false,
itemContentName: "品牌二"
}
]
}
若采用以下的方法则无法设置该值:
this.data.selectContent[0].itemContent[0].itemContenName = “品牌三” // 没用
this.setData({
selectContent[0].itemContent[0].itemContenName = "品牌三" // 编译器报错
// 或者
‘selectContent[0].itemContent[0].itemContenName = "品牌三" ’ // 也没用
})
正确的设置方法是:
this.setData({
[`selectContent[0].itemContent[0].itemContenName` ] = "品牌三"
})
注意:用[] 将键括以来,键的外面的引号是斜单引号 即:` ,而不是中文 \’ 或者英文的单引号 ',此外,如果下标索引值是需要用变量指定时,可采用这样的方式
this.setData({
[selectContent[${iIndex}].itemContent[${jIndex}].itemContenName
] = “品牌三”
})