কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে ফ্ল্যাট অবজেক্টকে নেস্টেড অবজেক্ট এবং অ্যারেতে রূপান্তর করা

ধরুন, আমাদের নিচের মতো একটি অবজেক্ট আছে:

const obj = {
  "firstName": "John",
  "lastName": "Green",
  "car.make": "Honda",
  "car.model": "Civic",
  "car.revisions.0.miles": 10150,
  "car.revisions.0.code": "REV01",
  "car.revisions.0.changes": "",
  "car.revisions.1.miles": 20021,
  "car.revisions.1.code": "REV02",
  "car.revisions.1.changes.0.type": "asthetic",
  "car.revisions.1.changes.0.desc": "Left tire cap",
  "car.revisions.1.changes.1.type": "mechanic",
  "car.revisions.1.changes.1.desc": "Engine pressure regulator",
  "visits.0.date": "2015-01-01",
  "visits.0.dealer": "DEAL-001",
  "visits.1.date": "2015-03-01",
  "visits.1.dealer": "DEAL-002"
};

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অবজেক্ট গ্রহণ করে এবং এটিকে নেস্টেড অবজেক্ট এবং অ্যারেতে আনফ্ল্যাটেন করে।

অতএব, উপরের অ্যারেতে আউটপুট হবে:

const output = {
  firstName: 'John',
  lastName: 'Green',
  car: {
    make: 'Honda',
    model: 'Civic',
    revisions: [
      { miles: 10150, code: 'REV01', changes: ''},
      { miles: 20021, code: 'REV02', changes: [
        { type: 'asthetic', desc: 'Left tire cap' },
        { type: 'mechanic', desc: 'Engine pressure regulator' }
      ]}
    ]
  },
  visits: [
    { date: '2015-01-01', dealer: 'DEAL-001' },
    { date: '2015-03-01', dealer: 'DEAL-002' }
  ]
};

উদাহরণ

const obj = {
  "firstName": "John",
  "lastName": "Green",
  "car.make": "Honda",
  "car.model": "Civic",
  "car.revisions.0.miles": 10150,
  "car.revisions.0.code": "REV01",
  "car.revisions.0.changes": "",
  "car.revisions.1.miles": 20021,
  "car.revisions.1.code": "REV02",
  "car.revisions.1.changes.0.type": "asthetic",
  "car.revisions.1.changes.0.desc": "Left tire cap",
  "car.revisions.1.changes.1.type": "mechanic",
  "car.revisions.1.changes.1.desc": "Engine pressure regulator",
  "visits.0.date": "2015-01-01",
  "visits.0.dealer": "DEAL-001",
  "visits.1.date": "2015-03-01",
  "visits.1.dealer": "DEAL-002"
};
const unflatten = (obj = {}) => {
  const result = {};
  let temp, substrings, property, i;
  for (property in obj) {
    substrings = property.split('.');
    temp = result;
    for (i = 0; i < substrings.length - 1; i++) {
      if (!(substrings[i] in temp)) {
        if (isFinite(substrings[i + 1])) {
          temp[substrings[i]] = [];
        }
        else {
          temp[substrings[i]] = {};
        }
      }
      temp = temp[substrings[i]];
    }
    temp[substrings[substrings.length - 1]] = obj[property];
  }
  return result;
};
console.log(JSON.stringify(unflatten(obj), undefined, 4));

আউটপুট

কনসোলে আউটপুট হবে:

{
  "firstName": "John",
  "lastName": "Green",
  "car": {
    "make": "Honda",
    "model": "Civic",
    "revisions": [
      {
        "miles": 10150,
        "code": "REV01",
        "changes": ""
      },
      {
        "miles": 20021,
        "code": "REV02",
        "changes": [
          {
            "type": "asthetic",
            "desc": "Left tire cap"
          },
          {
            "type": "mechanic",
            "desc": "Engine pressure regulator"
          }
        ]
      }
    ]
  },
  "visits": [
    {
      "date": "2015-01-01",
      "dealer": "DEAL-001"
    },
    {
      "date": "2015-03-01",
      "dealer": "DEAL-002"
    }
  ]
}
  1. জাভাস্ক্রিপ্টে সাব-অবজেক্ট ও অ্যারে সহ অবজেক্ট ইমপোর্ট করা

  2. জাভাস্ক্রিপ্টে অবজেক্ট 머জ করে সিঙ্গেল অবজেক্ট অ্যারে তৈরি করা

  3. জাভাস্ক্রিপ্টে দুটি অবজেক্ট অ্যারে মёрজ করা ইউনিক অবজেক্টে

  4. জাভাস্ক্রিপ্টে অ্যারে অফ অ্যারে কনভার্ট করে অবজেক্ট বানানো