use*_*433 7 javascript string jquery split object
我有一个空对象和一个字符串:
var obj = {};
var str = "a.b.c";
Run Code Online (Sandbox Code Playgroud)
有没有办法让我把它变成
obj = { a: { b: { c: { } } } }
Run Code Online (Sandbox Code Playgroud)
我不能完全围绕这一个,我甚至不确定它是否可能.
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]];
}
Run Code Online (Sandbox Code Playgroud)
ES6:
let str = "a.b.c",
arr = str.split('.'),
obj, o = obj = {};
arr.forEach(key=>{o=o[key]={}});
console.log(obj);Run Code Online (Sandbox Code Playgroud)
ES6 /减少(不需要阵列存储):
let str = "a.b.c", obj, o = obj = {};
str.split('.').forEach(key=>o=o[key]={});
console.log(obj);Run Code Online (Sandbox Code Playgroud)
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);Run Code Online (Sandbox Code Playgroud)