Giả sử chúng ta có một chuỗi đặc biệt chứa các ký tự thành cặp, như sau:
const str = "AABBCCDDEE";
Chúng ta cần xây dựng một đối tượng dựa trên chuỗi này, cấu trúc như sau:
const obj = {
code: "AA",
sub: {
code: "BB",
sub: {
code: "CC",
sub: {
code: "DD",
sub: {
code: "EE",
sub: {}
}
}
}
}
};Lưu ý rằng với mỗi cặp ký tự duy nhất trong chuỗi, ta có một đối tượng sub mới, và thuộc tính code ở mỗi cấp đại diện cho một cặp cụ thể.
Chúng ta có thể giải quyết bài toán này bằng cách tiếp cận đệ quy. Ta sẽ duyệt qua chuỗi theo cách đệ quy để lấy từng cặp ký tự và gán đối tượng sub mới cho nó.
Ví dụ
Dưới đây là đoạn code:
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));Kết quả
Đoạn code sẽ in ra console:
{
"code": "AA",
"sub": {
"code": "BB",
"sub": {
"code": "CC",
"sub": {
"code": "DD",
"sub": {
"code": "EE",
"sub": {}
}
}
}
}
}