簡體   English   中英

Javascript創建具有作為動態對象的屬性的對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM