#javascript #arrays #object
#javascript #массивы #сортировка
Вопрос:
У меня вопрос, как создать вложенный объект из массива? Т.е. у меня есть следующий массив:
var myArr = ['foo', 'bar', 'baz']
и нужно сделать его объектом, подобным:
myObj = {foo: { bar: { baz: { } } }}
Как я могу сделать это правильно?
Ответ №1:
Используйте reduce()
var myArr = ['foo', 'bar', 'baz'];
var myObj = {};
myArr.reduce(function(a, b) {
a[b] = {};
return a[b];
}, myObj);
console.log(myObj);
Ответ №2:
вы можете сделать лучше ! :
let arr = ['foo', 'bar', 'baz'];
let obj = arr.reduceRight((a,c)=>({[c]:a}),{})
document.write( JSON.stringify(obj) )
Использование метода .reduceRight()