javascript - 如何在 JS (ES6) 中获取带点格式字符串的嵌套对象

标签 javascript ecmascript-6

如何有效地分配一个可变深度的嵌套对象,只有一个值和一个类型的字符串:

const names = 'obj.source.name'
const value = 'myValue'

得到:

{ obj: { source: { name: 'myValue' } } }

最佳答案

您还可以使用 reduce() 方法。

const names = 'obj.source.name'
const value = 'myValue'

function nestObj(keys, val) {
  var o = {}, k = keys.split('.')
  return k.reduce((r, e, i) => r[e] || (r[e] = (k.length-1 != i) ? {} : val), o), o
}

console.log(JSON.stringify(nestObj(names, value), 0, 4))

关于javascript - 如何在 JS (ES6) 中获取带点格式字符串的嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42138877/

相关文章:

javascript - 映射 JS 对象并将参数合并到子对象中

javascript - 将路由器配置放在 Aurelia 的单独文件中

JavaScript - 调用父类函数并替换它

javascript - 视差效果渲染问题

javascript - 在 javascript 图表上显示交易量配置文件

javascript - 扩展默认值,选项覆盖所有内容

javascript - 将整个代码块包装在 Promise 中时 Promise 和 Deferred 之间的区别?

javascript - Coffeescript 中的源映射 - 错误未映射到源

Javascript 下拉列表

javascript - es6中lodash的findIndex