首页 > 解决方案 > 如何将字符串转换为递归对象?

问题描述

我将一个点分隔的字符串传递给函数

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] = {}
  },{})
}

标签: javascript

解决方案


下面的迭代方法怎么样: -

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'))


推荐阅读