动态向数组中添加对象,例如:
//比如说这是一个后台返回的数组
list: [{
'name': '安全策划',
'number': 4
},
{
'name': '安全策划',
'number': 4
},
{
'name': '安全策划',
'number': 4
},
{
'name': '安全策划',
'number': 4
},
{
'name': '安全策划',
'number': 4
},
{
'name': '安全策划',
'number': 4
}
],
但因为前端效果,我想得到如下数组:
list: [{
'name': '安全策划',
'number': 4
},
{
'name': '安全策划',
'number': 4
},
{},
{
'name': '安全策划',
'number': 4
},
{
'name': '安全策划',
'number': 4
},
{},
{
'name': '安全策划',
'number': 4
},
{
'name': '安全策划',
'number': 4
},
{}
],
错误示例:
var obj = {};
for (var i = 0; i < this.list.length; i++) {
if ((i + 1) % 3 == 0) {
this.list.splice(i, 0, obj);
}
};
this.list.push(obj);
好了,现在想要的数组也得到了。但现在有个问题,就比如我点击事件后想给下标为‘2’的对象添加一个属性,但当我操作后我发现下标‘2,5,8’都添加了该属性,但我现在只需要‘2’有该属性,所以这就是一个问题了。
正确示例:
尝试了好久后感觉其实很简单,就是添加的时候对象相同而已,只需要每次添加的对象不相同就很完美。正确示例:
var id = 0;
for (var i = 0; i < this.list.length; i++) {
if ((i + 1) % 3 == 0) {
id = id+1;
let obj = {
'id':id
};
this.list.splice(i, 0, obj);
}
};
this.list.push({});
这样就可以了,虽然不知其所以然,但确实解决了这个问题。
最后也希望知其所以然的大佬不吝赐教,拜谢!!!