2016-07-06 48 views
0

我需要你們的幫助。我需要從分割字符串創建一個對象。讓我告訴你我的代碼和解釋,並希望你們能幫助我。 所以這是我當前的代碼從分割的字符串創建對象

for(d in data){ 
    var item = d.split('_'); 
    console.log(item + " " + data[d]); 
    if(item[0] == 'partnerX'){ 
     //Rest of the code goes here 
    }else if(item[0] == 'partnerY'){ 
     //Rest of the code goes here 
    } 
} 

console.log(d + " " + data[d])在for循環是

partnerX_row1_id  10101010 
partnerX_row10_id  79899899 

console.log(d.split('_') + data[d])

partnerX,row1,id  10101010 
partnerX,row10,id  79899899 
partnerX,row11,id  99999999 
partnerX,row1,name test13 
partnerX,row10,name test10 
partnerX,row11,name test1 
partnerY,row1,id  10101010 
partnerY,row10,id  79899899 
partnerY,row11,id  99999999 
partnerY,row1,name test12 
partnerY,row10,name test77 
partnerY,row11,name test889 

我的問題是,最終的結果應該是這樣的,但我只是無法弄清楚如何正確循環數據,然後將其推送到數組並將數組轉換爲對象或者直接創建對象,這會看起來像li這一個。

{ 
    "partnerx": { 
     "partnerx_row1" : { 
      "id": 3456788, 
      "name": "creditor 1" 
     }, 
     "partnerx_row10" : { 
      "id": 79899899, 
      "name": "test10" 
     }, 
     "partnerx_row11" : { 
      "id": 99999999, 
      "name": "test1" 
     } 
    }, 
    "partnery": { 
     "partnery_row1" : { 
      "id": 10101010, 
      "name": "test12" 
     }, 
     "partnery_row10" : { 
      "id": 79899899, 
      "name": "test77" 
     }, 
     "partnery_row11" : { 
      "id": 99999999, 
      "name": "test889" 
     } 
    } 
} 

我希望你們能幫助我。如果您需要任何其他信息,請讓我知道,我會提供。預先感謝您

+0

請問您可以在代碼的起始處分享'data'的值嗎? –

+0

已更新。基本上分割前的值只是下劃線的字符串。然後我將下劃線的字符串分割爲數組以便於操作 –

+0

抱歉有人編輯了我的問題,更新的數據消失了。我將重寫它 –

回答

1

這裏去的代碼。結果存儲在obj中。

obj = {}; 
for(d in data) { 
    var item = d.split('_'); 
    item[0] = item[0].toLowerCase(); 
    if (obj[item[0]] == undefined) { 
     obj[item[0]] = {}; 
    } 
    if (obj[item[0]][item[0] + "_" + item[1]] == undefined) { 
     obj[item[0]][item[0] + "_" + item[1]] = {}; 
    } 
    obj[item[0]][item[0] + "_" + item[1]][item[2]] = data[d]; 
} 
+0

好看之前的對象是什麼樣子!謝謝老兄。這讓我煩惱了好幾個小時! –