Javascript按数组创建Object

TJR*_*TJR 1 javascript arrays recursion object

我尝试创建一个具有最后一个键值的对象.我只有一个带有键和值的数组但不知道如何在javascript中不使用引用来创建对象.

据我所知,没有办法在javascript中创建变量的引用.

这就是我所拥有的:

var value = 'test';
var keys = ['this', 'is', 'a', 'test'];
Run Code Online (Sandbox Code Playgroud)

这就是我要的:

myObject: {
   this : {
     is: {
       a : {
         test : 'test'
       }
     }
   }
}
Run Code Online (Sandbox Code Playgroud)

知道我怎么能用JavaScript做到最好吗?

Phi*_*hil 8

这个怎么样...

const value = 'test'
const keys = ['this', 'is', 'a', 'test']

const myObject = keys.reduceRight((p, c) => ({ [c]: p }), value)

console.info(myObject)
Run Code Online (Sandbox Code Playgroud)

或者,如果您不是对象文字键快捷键和箭头函数的粉丝......

keys.reduceRight(function(p, c) {
  var o = {};
  o[c] = p;
  return o;
}, value);
Run Code Online (Sandbox Code Playgroud)

如果需要IE <= 8支持,请参阅Array.prototype.reduceRight() - Polyfill.