[英]Javascript create object with property as dynamic objects
我嘗試了很多搜索,但沒有得到所需的解決方案。
我想要實現的是
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”是動態的。 然后動態分配name: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";
但這會帶來錯誤。
我知道這似乎很簡單,但是任何幫助將不勝感激。
提前致謝。 :)
您正在嘗試在鍵“ idnumber1
”等上設置已分配對象的值。
您將需要像這樣為id初始化每個對象:
var myObject = {};
myObject[idnumber1] = {};
myObject[idnumber1].place = "SomePlace1";
myObject[idnumber2] = {};
myObject[idnumber2].place = "SomeLoc1"
我會這樣做,這並不是您真正要求的,但是我認為以后更改它會變得更加容易。
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);
要在集合中動態創建對象,可以使用數字計數器變量來創建對象集合( 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}
}
實際上,您可以使用在循環外遞增的計數器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.