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

Chuyển đổi một chuỗi thành đối tượng phân cấp - JavaScript

Giả sử, chúng ta 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 đệ 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ó

Ví dụ

Sau đây là mã -

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

Điều này sẽ tạo ra kết quả sau trong bảng điều khiển -

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