小程序爬坑之旅 - VicSh/my-web-log GitHub Wiki

小程序中如何给对象的深层属性赋值?

Page({
  /**
   * 页面的初始数据
   */
  data: {
    obj: {
      attr1: '',
      attr2: {
        subAttr1: '',
        subAttr2: ''
      }
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let ele = 'subAttr1'
    this.setData({
      /**
       * 这里采用es6拼接字符串的方式
       * 将val作为obj对象的深层属性拼接起来
       * [] 中的字符串被当作变量使用
       * 即:将'hello world'赋值给obj.attr2.subAttr1
       */
      [`obj.attr2.${ele}`]: 'hello world'
    })
  }
)}