簡體   English   中英

在現有對象中添加javascript對象

[英]adding javascript object in existing object

我以為我對javascript有很多了解,但是我必須承認我什么都不知道。 我一直試圖創建一個自定義對象,但似乎仍然沒有。

var currentline=[
        {"NAME":"Battery For Alarm Panel","CODE":"POWER MAX","OWN":"ONM"},
        {"NAME":"Fire Alarm Panel","CODE":"SANA SERVICES","OWN":"ONM"}...
       ]

通過以下問題的幫助,我可以創建以下對象

   // skipping main loop code for brevity
   detailObj=[];
   loop{
     singleObj = {};
     singleObj[currentline['NAME']] = {};
     singleObj[currentline['NAME']][currentline['CODE']] = {};
     singleObj[currentline['NAME']][currentline['CODE']][currentline['OWN']] = value;
     detailObj.push(singleObj);
   }

並獲取以下detailObj

       [
        {"Battery For Alarm Panel":{"POWER MAX":{"ONM":7}}},
        {"Fire Alarm Panel":{"SANA SERVICES":{"ONM":8}}}
       ]

我如何push一個對象push入對象,盡管進入數組卻可以跟隨對象?

       {
       "Battery For Alarm Panel":{"POWER MAX":{"ONM":7}},
       "Fire Alarm Panel":{"SANA SERVICES":{"ONM":8}}
       }

有什么功能可以在對象中添加對象?

如果currentline是這樣的

var currentline = [{
    "NAME": "Battery For Alarm Panel",
    "CODE": "POWER MAX",
    "OWN": "ONM",
    "VALUE": 7
}, {
    "NAME": "Fire Alarm Panel",
    "CODE": "SANA SERVICES",
    "OWN": "ONM",
    "VALUE": 8
}];

只需更改一個對象的detailObj ,而不是推送,而是將NAMES值分配為鍵,就像這樣

var detailObj = {};    // An object, not an array
currentline.forEach(function(line) {
    detailObj[line.NAME] = {};
    detailObj[line.NAME][line.CODE] = {};
    detailObj[line.NAME][line.CODE][line.OWN] = line.VALUE;
});
console.log(detailObj);
# { 'Battery For Alarm Panel': { 'POWER MAX': { ONM: 7 } },
#   'Fire Alarm Panel': { 'SANA SERVICES': { ONM: 8 } } }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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