我尝试了很多搜索并没有获得所需的解决方案。
我想要实现的是
var myObject {
id1 : {
name:place_name,
location : place_loc
},
id2 : {
name:place_name,
location : place_loc
},
id3 : {
name:place_name,
location : place_loc
}
}
我想要做的是,最初我希望属性" id1"," id2" ..是动态的。然后动态分配名称:place_name和每个属性的其他属性。
我不知道属性的数量(id1,id2,id3 ......)因此想要动态添加它们并且添加属性(id1,id2 ...)后我想动态添加属性值。每个id的(place_name& place_loc)。
我的代码看起来像这样。
var myObject = {};
myObject[idnumber1].place = "SomePlace1";
myObject[idnumber1].place = "SomeLoc1";
myObject[idnumber2].place = "SomePlace1";
myObject[idnumber2].place = "SomeLoc1";
但它给出了错误。
我知道这似乎很简单,但任何帮助都会感激不尽。
提前致谢。 :)
答案 0 :(得分:1)
您正尝试在键“idnumber1
”等处设置已分配对象的值。
你需要的是为你的id初始化每个对象:
var myObject = {};
myObject[idnumber1] = {};
myObject[idnumber1].place = "SomePlace1";
myObject[idnumber2] = {};
myObject[idnumber2].place = "SomeLoc1"
答案 1 :(得分:0)
我会这样做,它并不完全是你所要求的,但我认为以后更改它会变得更容易。
function Place(name, location) {
this.name = name;
this.location = location;
}
var myObject = {}
myObject['id1'] = new Place('Foo', 'Bar');
myObject['id2'] = new Place('Internet', 'test');
console.log(myObject);
答案 2 :(得分:0)
要动态创建集合中的对象,可以使用数字计数器变量来创建对象集合(myObject["id" + i] = {name: place_name, location: place_loc}
)。
一个例子:
var myObject = {};
for (i = 0; i < 20; i++){
myObject["id" + i] = {name: place_name, location: place_loc}
}
实际上,您可以使用在循环外增量的计数器。