Xây dựng đối tượng JSON lồng nhau trong JavaScript
Chúng ta có một loại 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 trông như sau:
const obj = {
code: "AA",
sub: {
code: "BB",
sub: {
code: "CC",
sub: {
code: "DD",
sub: {
code: "EE",
sub: {}
}
}
}
}
};
Lưu ý rằng cho mỗi cặp duy nhất trong chuỗi, chúng ta có một đối tượng sub mới và thuộc tính code ở bất kỳ cấp độ nào đạ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 sử dụng phương pháp đệ quy.
Chúng ta sẽ lặp đệ quy qua chuỗi để chọn cặp cụ thể và gán một đối tượng sub mới cho nó.
Do đó, hãy viết mã cho hàm này:
Ví dụ
Mã thực hiện như sau:
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));
Đầu ra
Kết quả trong console sẽ là:
{
"code": "AA",
"sub": {
"code": "BB",
"sub": {
"code": "CC",
"sub": {
"code": "DD",
"sub": {
"code": "EE",
"sub": {}
}
}
}
}
}