Javascript - 从数组创建深层对象

时间:2014-11-14 11:40:08

标签: javascript arrays javascript-objects

我需要从数组中创建一个对象。

例如,

我有一个像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

有人可以帮助我吗?

提前致谢。

1 个答案:

答案 0 :(得分:7)

您可以尝试类似

的内容

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>