0

私が持っているのは次のような配列です:['foo','bar']そしてそれを次のようなオブジェクトに変換したいと思います:

{{
     foo:{
          バー:{
               等:{}
          }
     }
}

2つのループを試しましたが、配列に3つの値がある場合は、それを機能させることができます。

4

1 に答える 1

5
var obj = {};
var pointer = obj;

array.forEach(function (item) {
    pointer = pointer[item] = {};
});

これがフィドルです:http://jsfiddle.net/h67ts/


IE <9をサポートする必要がある場合は、通常のループを使用するか、次のポリフィルを使用できます。

if ( !Array.prototype.forEach ) {
  Array.prototype.forEach = function(fn, scope) {
    for(var i = 0, len = this.length; i < len; ++i) {
      fn.call(scope, this[i], i, this);
    }
  }
}
于 2013-01-31T19:30:53.323 に答える