javascript - 转换对象中的 JavaScript 点分字符串

标签 javascript

给定一个 JS 字符串:var s = "deep.deeper.deepest" ,我怎样才能将其转换为这样的对象:deep: {deeper: {deepest: {}}}

最佳答案

 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;
}

关于javascript - 转换对象中的 JavaScript 点分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48100815/

相关文章:

Javascript上传文件对齐

javascript - 从 javascript 对象返回多个变量的正确方法

javascript - Jquery 模式无法正常工作

javascript - JS : Add eventHandler to all elements except few

javascript - 加载一次 Javascript 类

javascript - 寻找设计模式以从单个 JSON 响应创建多个模型/集合

javascript - JavaScript 中的双括号有什么作用?

Javascript 时区给了我错误的时间

javascript - Highcharts ; x轴缩放问题

javascript - DOM 中 IE 的 document.all 是什么?