2014-07-03 282 views
-1

我在Java腳本數組..類似: var myarray = ['a','b',c'];var item = 'Name'; ,我想將其轉換成類似轉換數組JSON對象

{ 
a:{ 
    b:{ 
     c:{ 
      item:'Name'  
     } 
     } 
    } 
} 
+3

這是一個對象,而不是JSON。 – Barmar

+0

@Barmar是對的。但是,如果你需要一個JSON字符串,並且沒有正確地設置問題的格式,只需要選擇下面的一個答案,然後執行'JSON.stringify(result)'獲得該對象的JSON表示。 – yuvi

回答

3
var result = myarray.reverse().reduce(function (value, key) { 
    var result = {}; 
    result[key] = value; 
    return result; 
}, { item : item }); 

換句話說,你」使用數組中的鍵將結果逐層重新打包到新對象中。

+1

這很可能應該是'reverse()。reduce(...)' – yuvi

+0

的確應該。 :) – deceze

1
var obj = {}; 
var curobj = obj; 
for (var i = 0; i < myarray.length; i++) { 
    var newObj = {}; 
    newObj[myarray[i]] = newObj; 
    curObj = newObj; 
} 
curObj.item = item; 

您想要的結果將在obj對象中。