2014-11-14 103 views
0

我需要從數組中創建一個對象。Javascript - 從數組創建深對象

例如,

我有這樣var arr = ['a', 'b', 'c'];

它應該被轉換到,

{ 
    a:{ 
    b:{ 
     c:{ 

     } 
    } 
    } 
} 

我嘗試下面的代碼但不能夠創建深樹,

一個陣列
var arr = ['a', 'b', 'c']; 
var obj = {}, 
    temp = 'asd'; 
for(var i=0; i<arr.length; i++){ 
    if($.isEmptyObject(obj)){ 
     obj[arr[i]] = {}; 
    } else { 
     console.log(Object.keys(obj)); 
     obj[Object.keys(obj)][arr[i]] = {}; 
    } 
} 
console.log(obj, temp); 

Fiddle

有人可以幫助我嗎?

在此先感謝。

回答

6

你可以嘗試像

var arr = ['a', 'b', 'c']; 
 
var obj = temp = {}; 
 
for (var i = 0; i < arr.length; i++) { 
 
    temp = temp[arr[i]] = {} 
 
} 
 

 
$('#result').html(JSON.stringify(obj))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="result"></div>