將字串轉換成層次物件 - 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": {} } } } } }
廣告