小程序开发-复杂数据结构的构建及值的修改

目录

        • 构建数据结构
        • 修改值

当我们需要把一些数据组装起来,封装成我们需要的数据结构形式,这里来举个例子。
以下为要构建成的目标数据结构:

{
	"groupName": "心情",
	"groupDatas": [
		{
			"code": "01",
			"title": "例01",
			"anInfo": [
				{									
					"saveFlag": true,
					"saveValue": "1"
				}
			]
		},
		{
			"code": "02",
			"title": "例02",
			"anInfo": [
				{									
					"saveFlag": true,
					"saveValue": "2"
				}
			]
		}
	]
}

构建数据结构

接下来我们看看如何构建这样的数据结构:

Page({
  /**
   * 页面的初始数据
   */
  data: {
      motto: '小程序学习',
      userInfo: {},
      hasUserInfo: false,
      canIUse: wx.canIUse('button.open-type.getUserInfo'),
      data2:{}
  },
onLoad: function (options) {
    var that = this;
    
    //构建数据模型
    var QDatas=[]
    var anInfos=[]
  
    that.setData({
      ['anInfos[' + 0 + '].saveFlag']:true,
      ['anInfos[' + 0 + '].saveValue']:'1',
      ['anInfos[' + 1 + '].saveFlag']:true,
      ['anInfos[' + 1 + '].saveValue']:'2'
    })
    that.setData({
      ['QDatas[' + 0 + '].code']:'01',
      ['QDatas[' + 0 + '].title']:'例01',
      ['QDatas[' + 0 + '].anInfo']: that.data.anInfos[0],
      ['QDatas[' + 1 + '].code']:'02',
      ['QDatas[' + 1 + '].title']:'例02',
      ['QDatas[' + 1 + '].anInfo']: that.data.anInfos[1]
    })
   that.setData({
      'data2.groupName':'心情',
      'data2.groupDatas':that.data.QDatas
   })
}

修改值

了解了这种复杂数据类型结构的构造方式,其实修改它的值的方式也是同样的,例如我们要修改该数据的saveValue为其他内容:

var saveValues=['新value01','新value02']
for (var data_index in that.data.data2.groupDatas) {
   that.setData({
      ['groupDatas[' + data2_index + '].anInfo[' +data2_index+ '].saveValue']: saveValues[data_index]
   })
}

你可能感兴趣的:(微信小程序)