Computer >> Máy Tính >  >> Lập trình >> Javascript

Xây dựng một đối tượng JSON lồng nhau trong JavaScript

Chúng tôi có một loại chuỗi đặc biệt chứa các ký tự theo cặp, như thế này -

const str = "AABBCCDDEE";

Chúng tôi bắt buộc phải xây dựng một đối tượng dựa trên chuỗi này sẽ giống như thế này -

const obj = {
   code: "AA",
   sub: {
      code: "BB",
      sub: {
         code: "CC",
         sub: {
            code: "DD",
            sub: {
               code: "EE",
               sub: {}
            }
         }
      }
   }
};

Lưu ý rằng đối với mỗi cặp duy nhất trong chuỗi, chúng ta có một đối tượng con mới và thuộc tính mã ở 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 vấn đề này bằng cách sử dụng phương pháp đệ quy.

Chúng tôi sẽ lặp lại một cách đệ quy qua chuỗi để chọn một cặp cụ thể và chỉ định một đối tượng phụ mới cho nó.

Do đó, hãy viết mã cho chức năng này -

Ví dụ

Mã cho điều này sẽ là -

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

Đầu ra trong bảng điều khiển sẽ là -

{
   "code": "AA",
   "sub": {
      "code": "BB",
      "sub": {
         "code": "CC",
         "sub": {
            "code": "DD",
            "sub": {
               "code": "EE",
               "sub": {}
            }
         }
      }
   }
}