构造 JavaScript 中的嵌套 JSON 对象


我们有一种特殊类型的字符串,其中包含成对字符,如下所示:-

const str = "AABBCCDDEE";

我们要求基于该字符串构造一个对象,其看起来应如下所示:-

const obj = {
   code: "AA",
   sub: {
      code: "BB",
      sub: {
         code: "CC",
         sub: {
            code: "DD",
            sub: {
               code: "EE",
               sub: {}
            }
         }
      }
   }
};

请注意,对于字符串中的每一对唯一项,我们都有一个新的子对象,并且在任何级别的代码属性都表示一个特定的对。

我们可以使用递归方法来解决此问题。

我们将递归地迭代遍历字符串以挑选特定的对并为其分配一个新的子对象。

因此,让我们编写此函数的代码:-

示例

其代码如下:-

const str = "AABBCCDDEE";
const constructObject = str => {
   const res = {};
   let ref = res;
   while(str){
      const words = str.substring(0, 2);
      str = str.substr(2, str.length);
      ref.code = words;
      ref.sub = {};
      ref = ref.sub;
   };
   return res;
};
console.log(JSON.stringify(constructObject(str), undefined, 4));

输出

控制台中的输出将为:-

{
   "code": "AA",
   "sub": {
      "code": "BB",
      "sub": {
         "code": "CC",
         "sub": {
            "code": "DD",
            "sub": {
               "code": "EE",
               "sub": {}
            }
         }
      }
   }
}

更新于: 2020-10-20

6K+ 次浏览

开启你的 职业生涯

通过完成该课程获得认证

开始
广告