来自字符串的Javascript嵌套对象 [英] Javascript nested objects from string
本文介绍了来自字符串的Javascript嵌套对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个空对象和一个字符串:
I've got an empty object and a string:
var obj = {};
var str = "a.b.c";
有没有办法把它变成
obj = { a: { b: { c: { } } } }
我无法完全理解这一点,我甚至不确定它是否可行。
I can't quite wrap my head around this one and I'm not even sure if it would be possible.
推荐答案
var obj = {};
var str = "a.b.c";
var arr = str.split('.');
var tmp = obj;
for (var i=0,n=arr.length; i<n; i++){
tmp[arr[i]]={};
tmp = tmp[arr[i]];
}
ES6:
ES6:
let str = "a.b.c",
arr = str.split('.'),
obj, o = obj = {};
arr.forEach(key=>{o=o[key]={}});
console.log(obj);
ES6 /减少(不需要数组存储):
ES6/Reduced (array storage unnecessary):
let str = "a.b.c", obj, o = obj = {};
str.split('.').forEach(key=>o=o[key]={});
console.log(obj);
ES6 / Array.prototype.reduce:
ES6/Array.prototype.reduce:
let str = "a.b.c", last;
let obj = str.split('.').reduce((o, val) => {
if (typeof last == 'object')
last = last[val] = {};
else
last = o[val] = {};
return o;
}, {});
console.log(obj);
这篇关于来自字符串的Javascript嵌套对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文