从数组填充嵌套对象?

IT技术 javascript arrays sorting
2021-02-28 14:33:54

我有一个问题,如何从数组创建嵌套对象?即我有以下数组:

var myArr = ['foo', 'bar', 'baz'] 并需要使它成为一个对象,如:

myObj = {foo: { bar: { baz: { } } }}

我怎样才能正确地做到这一点?

2个回答

使用reduce()

var myArr = ['foo', 'bar', 'baz'];
var myObj = {};

myArr.reduce(function(a, b) {
  a[b] = {};
  return a[b];
}, myObj);

console.log(myObj);

你可以做得更好 !

let arr = ['foo', 'bar', 'baz'];

let obj = arr.reduceRight((a,c)=>({[c]:a}),{})

document.write( JSON.stringify(obj) )

使用.reduceRight()方法