微信小程序:多层次对象数组的赋值、动态赋值

开发中经常会从后台拿到类似数据:

data:{
  info1:{
    name: 'aa',
    address: 'bb'
    ...
  },
  info2: [
    { name: 'aa' }, { name: 'bb' } ...
  ]
}

如果要修改 `name = 'cc'` 怎么做呢?
一般我们这么写:

this.data.info1.name = 'cc' // 没用
this.setData({
  info1.name: 'cc', // 编辑器报错
  'info1.name': 'cc' // 也没用
})

解决方案:

  • 第一步:先用一个变量,把(info1.name)用字符串拼接起来。
  • 第二步:将变量写在[]里面即可。
const _k1 = `info1.name` // 拼接已知属性
const _k2 = `info2[${index}].name` // 拼接动态属性
this.setData({
  [_k1]: 'cc',
  [_k2]: 'cc'
})



作者:疾风劲草ccy
链接:https://www.jianshu.com/p/8487bb7521af
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值