2014-09-27 117 views
1

我的問題是,我想建立一個JS對象消息分層動態,這沒有數組。我在stackoverflow,google和許多其他網站上搜索了很多,但不幸的是還沒有找到解決方案,而且我對這個領域還比較陌生。 數組有很多例子,但他們沒有回答我的問題。 這是我的結構。創建分層動態JS對象

{ 
"ID" : 1, 
"SRC" : "SYS", 
"LOG" : { 
    "PARAM" : { 
     "NUM" : 3, 
     "N01" : { 
      " TO " : 1, 
      " OM " : 1, 
      " NO " : 1, 
      " IO " : 1, 
     }, 
     "N02" : { 
      " TO " : 2, 
      " OM " : 2, 
      " NO " : 2, 
      " IO " : 2, 
     }, 
     "N03" : { 
      " TO " : 3, 
      " OM " : 3, 
      " NO " : 3, 
      " IO " : 3, 
     } 
    } 
}} 

如果下次只有N02存在,結構應該是這樣的。等等......

{ 
"ID" : 1, 
"SRC" : "SYS", 
"LOG" : { 
    "PARAM" : { 
     "NUM" : 1, 
     "N02" : { 
      " TO " : 2, 
      " OM " : 2, 
      " NO " : 2, 
      " IO " : 2, 
     }}}} 

從NUM存在,例如,N01應該被添加到結構中。如果N01不存在且N02可用,則需要在分層結構中添加N02。 我需要一些幫助來做到這一點在JavaScript中。

+0

對象是否必須有密鑰?我的意思是,不用'N01'到'N03',你可以使用一個數組:'PARAM:[{},{},{}]'。 – 2014-09-27 15:54:09

+0

與論壇網站不同,我們不使用「謝謝」或「任何幫助表示讚賞」,或在[so]上簽名。請參閱[應該'嗨','謝謝,'標語和致敬從帖子中刪除?](http://meta.stackoverflow.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-刪除 - 從 - 個)。 – rene 2014-09-27 15:55:51

+0

是的,這是我的結構,主要問題是,如何在沒有數組的javascript中實現這個結構?這甚至有可能嗎?或者我應該在數組中做? – goldstone 2014-09-27 16:05:09

回答

0

我不是舒爾如果我明白你的問題正確的,但我想創建一個基本的物體,像

message = { 
 
      addParam: function (item) { 
 
       var paramLength = 0; 
 
       for (var k in this.LOG.PARAM) { 
 
        if (this.LOG.PARAM.hasOwnProperty(k)) { 
 
         paramLength++; 
 
        } 
 
       } 
 
       this.LOG.PARAM["NUM"] = paramLength; 
 
       this.LOG.PARAM["N"+paramLength] = item; 
 
      }, 
 
      ID: 1, 
 
      SRC: "SYS", 
 
      LOG: { 
 
       PARAM: { 
 
        NUM: 0, 
 
       } 
 
      } 
 
     } 
 
     message.addParam({ 
 
      " TO ": 1, 
 
      " OM ": 1, 
 
      " NO ": 1, 
 
      " IO ": 1, 
 
     }); 
 
     document.getElementById("output").innerHTML = JSON.stringify(message, null, 4);
<div ><pre id="output"></pre></div>

所有屬性都可以修改easely選擇它就像一個message.ID添加像message.ID = 12的值。

我還爲此對象添加了一個函數addParam。這會將附加對象添加到PARAM屬性中,以更新數字值。

+0

如果我的回答是有用的,請將它投票:) @goldstone – 2014-09-28 05:15:07

+0

很好的答案!這就是我需要的;) – goldstone 2014-09-28 10:23:37

+0

我很喜歡這樣做,但我不能這樣做,因爲我沒有15的聲望......或者當你知道如何時,請讓我知道。 :) – goldstone 2014-09-28 10:23:54