เรามีสตริงชนิดพิเศษที่มีอักขระเป็นคู่เช่นนี้ −
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": {}
}
}
}
}
}