我正在使用Angular,我可以使用Underscore库。
this.people = {};
var self = this;
var data = { 'name' : 'cool', 'age' : 23 };
我想在people对象中动态创建数组,并且能够将数据推送到每个对象......
所以我认为像这样的东西会起作用......
var arrName = 'group1';
this.people[arrName].push(data);
...或
this.people[arrName].push(data);
我想要一个像;
这样的对象people : {
'group1' : {
{ 'name' : 'test', 'age' : 21 },
{ 'name' : 'test', 'age' : 27 },
{ 'name' : 'test', 'age' : 23 },
},
'group2' : {
{ 'name' : 'test2', 'age' : 21 },
{ 'name' : 'testaaa', 'age' : 27 },
{ 'name' : 'testbbb', 'age' : 23 },
}
}
console.log(self.people);
但'group1'和'group2'必须是动态的,并且可以从变量中创建......
我附上了一个jsfiddle。
https://jsfiddle.net/2urqvxzh/1/
然后这些将被存储在LocalStorage中,并且对象很可能在每个数组中达到几百个项目,并且人们中最多可能有50个数组。
答案 0 :(得分:0)
您需要像这样动态创建数组:
var people = {};
var arrName1 = 'group1';
people[arrName1] = []; // here declare an array with [] or new Array()
people[arrName1].push(data); // then you can push
你的对象最终会是这样的:
people : {
'group1' : [ //group 1 needs to be an array, not an object
{ 'name' : 'test', 'age' : 21 },
{ 'name' : 'test', 'age' : 27 },
{ 'name' : 'test', 'age' : 23 },
],
'group2' : [
{ 'name' : 'test2', 'age' : 21 },
{ 'name' : 'testaaa', 'age' : 27 },
{ 'name' : 'testbbb', 'age' : 23 },
]
}
对象需要key/value
,数组只有值。你在考虑数组但是创建了一个对象。
答案 1 :(得分:0)
你可以这样做......
var people = {};
var arrName1 = 'group1';
var data = { 'name' : 'cool', 'age' : 23 };
people[arrName1] = new Array(data);
以下是JSFiddle示例https://jsfiddle.net/DivakarDass/2urqvxzh/6/
你的输出就像......
people : {
'group1' : [
{ 'name' : 'test', 'age' : 21 },
{ 'name' : 'test', 'age' : 27 },
{ 'name' : 'test', 'age' : 23 },
],
'group2' : [
{ 'name' : 'test2', 'age' : 21 },
{ 'name' : 'testaaa', 'age' : 27 },
{ 'name' : 'testbbb', 'age' : 23 },
]
}