转换对象中的JavaScript虚线字符串

转换对象中的JavaScript虚线字符串,javascript,Javascript,给定一个JS字符串:var s=“deep.deep.deep”,如何将其转换为如下对象:deep:{deep:{deep:{}} const dottedToObj = (str, orig = {}) => (str.split(".").reduce((obj, key) => obj[key] = {}, orig), orig); 只需将字符串数组(拆分原始字符串)缩减为一个对象链。或者功能稍差一点: function dottedToObj(str){ cons

给定一个JS字符串:
var s=“deep.deep.deep”
,如何将其转换为如下对象:
deep:{deep:{deep:{}}

 const dottedToObj = (str, orig = {}) => (str.split(".").reduce((obj, key) => obj[key] = {}, orig), orig);
只需将字符串数组(拆分原始字符串)缩减为一个对象链。或者功能稍差一点:

 function dottedToObj(str){
  const root = {};
  var acc = root;
  for(const key of str.split(".")){
    acc = acc[key] = {};
  }
  return root;
}
只需将字符串数组(拆分原始字符串)缩减为一个对象链。或者功能稍差一点:

 function dottedToObj(str){
  const root = {};
  var acc = root;
  for(const key of str.split(".")){
    acc = acc[key] = {};
  }
  return root;
}

一个简单的循环应该可以做到这一点,只需在对象中向下移动一层的同时移动每个虚线属性:

const s=“deep.deep.deep”;
函数convertToObject(str){
const result={};
让内部=结果;
用于(s.split的常量键(“.”){
//使用此键为对象指定一个子对象
内部[键]={};
//将当前对象设置为该子对象。
内=内[键]
}
//归还原件
返回结果;
}

console.log(convertToObject(s))
一个简单的循环应该可以实现这一点,只需在对象中向下移动一级的同时移动每个虚线属性:

const s=“deep.deep.deep”;
函数convertToObject(str){
const result={};
让内部=结果;
用于(s.split的常量键(“.”){
//使用此键为对象指定一个子对象
内部[键]={};
//将当前对象设置为该子对象。
内=内[键]
}
//归还原件
返回结果;
}
console.log(convertToObject))