2017-03-28 8 views
0

私は文字列の配列を取る何かをしようとしているし、基本的に入れ子オブジェクトのチェーンを構築します。当初は、これらのチェーンの深さは2でしたが、より深いチェーンを生成できる必要があります。パス(キーの配列)からネストされたオブジェクト構造を作成するにはどうすればよいですか?

基本的に、私はこのような配列を取る必要があります。

["test1", "test2", "test3", "test4"] 

とこのに変換:

{ 
    "test1": 
    { 
     "test2": 
     { 
      "test3": 
      { 
       "test4": {} 
      } 
     } 
    } 
} 

答えて

4

これはArray#reduceのための仕事のようになります。

function objectFromPath (path) { 
 
    var result = {} 
 
    
 
    path.reduce(function (o, k) { 
 
    return (o[k] = {}) 
 
    }, result) 
 
    
 
    return result 
 
} 
 

 
var path = ["test1", "test2", "test3", "test4"] 
 

 
console.log(objectFromPath(path))
.as-console-wrapper { min-height: 100%; }

+2

彼はこれよりも良くなるとは思わない – vol7ron

+1

答えをいただき、特に私の質問のタイトルを編集していただきありがとうございます。今私は実際に何をしようとしていたかを知っています! – Travis

関連する問題