如何在 JavaScript 中将点号表示法中的字符串转换为包含值的嵌套对象?
假设下面的字符串采用点号表示法 −
const keys = "details1.details2.details3.details4.details5"
而下面的数组如下 −
const firsName = "David";
要转换为嵌套对象,请结合使用 split(‘.’) 与 map() 的概念。
示例
以下是代码 −
const keys = "details1.details2.details3.details4.details5" const firsName = "David"; var tempObject = {}; var container = tempObject; keys.split('.').map((k, i, values) => { container = (container[k] = (i == values.length - 1 ? firsName : {})) }); console.log(JSON.stringify(tempObject, null, ' '));
要运行上面的程序,你需要使用以下命令 −
node fileName.js.
这里,我的文件名是 demo227.js。
输出
输出如下 −
PS C:\Users\Amit\JavaScript-code> node demo227.js { "details1": { "details2": { "details3": { "details4": { "details5": "David" } } } } }
广告