javascript - 如何将字符串转换为递归对象?
问题描述
我将一个点分隔的字符串传递给函数
console.log( namespace('a.b.c.d.e'))
并期望得到下一个结果
//result => "{"a":{"b":{"c":{"d":{"e":{}}}}}}"
我的尝试(我不知道如何递归)
const namespace = (string)=> {
return string.split('.').reduce((acc,el)=>{
acc[el] = {}
},{})
}
解决方案
下面的迭代方法怎么样: -
function namespace(input){
let result = {};
let temp = result;
const inputArr = input.split(".");
inputArr.forEach((ele)=>{
temp[ele] = {};
temp = temp[ele];
})
return result;
}
console.log( namespace('a.b.c.d.e'))
推荐阅读
- javascript - 反应原生井字游戏
- r - R:检测时不变变量的函数
- apache-kafka - 卡夫卡经纪人在经纪人宕机后不平衡分区
- android - Firebase 设备群发消息给成千上万的用户
- python - 从python中的记录创建列
- react-native - react-native-sqlite-storage InternalError Metro
- python - 如何从具有 np 概率数组的 2d np 数组中选择随机行?
- python - 如何在 Flask/WTForms 中添加带有文本字段的单选按钮
- vscode-settings - clang:错误:在 vscode 中打开现有文件时没有这样的文件或目录
- mercurial - 如何显示不包括标签的标签修订的后代?