将字符串转换成层次对象 - JavaScript
假设我们有一种特殊字符串,其中包含成对的字符,如下所示 −
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": {}
}
}
}
}
}
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP