將字串轉換成層次物件 - 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