微信小程序 data 赋值

个人经验总结

  • 1. 字符串
  • 2. 数字
  • 3. 对象
  • 4. 数组
    • 4.1. 数组 push
    • 4.2. 给数组 第 i 个元素 赋值
    • 4.3. 给数组 第 i 个元素 的某个属性 赋值
  • 5. 数组 push 的问题
    • 1. xx.push 不是函数
    • 2. 最后一次push的内容 覆盖 前面的内容

1. 字符串

data: {
    name: '',
    },
	this.setData({
 	   name: 'aaaa'
	})

2. 数字

data: {
    count: 0,
    },
    this.setData({
    	count: this.data.count + 1
    })

3. 对象

data: {
	    user:{
	      name: '',
	      age: 10,
    	},
    },
var name = "user.name";
var age = "user.age";

    this.setData({
    	[name] : "username",
		[age] : 15,
    })

4. 数组

data: {
	   list: [{
	      name: 'a',
	      age: 10,
    	},{
	      name: 'b',
	      age: 20,
    	}],
    },
var name1 = "list[0].name";
var age2 = "list[" + i + "].age"; // i=1
    this.setData({
    	[name1] : "username",
		[age2] : 15,
    })

4.1. 数组 push

this.data.list.push(JSON.parse(JSON.stringify(this.data.temp)))

4.2. 给数组 第 i 个元素 赋值

	var i =  ;  自己确定 i 的值
	
    var list = "list[" + i + "]"
    var a = JSON.parse(JSON.stringify(this.data.temp))
    
    this.setData({
        [list]: a
    })

4.3. 给数组 第 i 个元素 的某个属性 赋值

	var i =  ;  自己确定 i 的值
	
    var list = "list[" + i + "].name"
    
    this.setData({
        [list]: "fuzhi"
    })

5. 数组 push 的问题

1. xx.push 不是函数

数组是 [ ] 这个,只有 [ ] 才能用push
大部分错误 都是因为 { }

2. 最后一次push的内容 覆盖 前面的内容

深拷贝、浅拷贝问题
使用 JSON.stringify 转换成字符串,再用 JSON.parse 转换为对象

this.data.temp.push(JSON.parse(JSON.stringify(this.data.temp)))


若有错误,感谢指出~

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