来自字符串的Javascript嵌套对象

前端之家收集整理的这篇文章主要介绍了来自字符串的Javascript嵌套对象前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个空对象和一个字符串:
var obj = {};
var str = "a.b.c";

有没有办法让我把它变成

obj = { a: { b: { c: { } } } }

我不能完全围绕这一个,我甚至不确定它是否可能.

解决方法

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:

let str = "a.b.c",arr = str.split('.'),obj,o = obj = {};

arr.forEach(key=>{o=o[key]={}});

console.log(obj);

ES6 /减少(不需要阵列存储):

let str = "a.b.c",o = obj = {};

str.split('.').forEach(key=>o=o[key]={});

console.log(obj);

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相关文章