কম্পিউটার

জাভাস্ক্রিপ্টে JSON গ্রুপ অবজেক্ট


ধরুন, আমাদের কাছে এই ধরনের বস্তুর একটি অ্যারে আছে -

const arr = [
   { 'name': 'JON', 'flight':100, 'value': 12, type: 'uns' },
   { 'name': 'JON', 'flight':100, 'value': 35, type: 'sch' },
   { 'name': 'BILL', 'flight':200, 'value': 33, type: 'uns' },
   { 'name': 'BILL', 'flight':200, 'value': 45, type: 'sch' }
];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অ্যারে অবজেক্টে নেয়। ফাংশনটি ম্যাপ করা উচিত বস্তু থেকে 'মান' এবং 'টাইপ' কীগুলিকে সরিয়ে দেয় এবং তাদের মানগুলিকে সংশ্লিষ্ট বস্তুতে কী মান জোড়া হিসাবে যুক্ত করে।

অতএব, উপরের ইনপুটের আউটপুটটি এইরকম হওয়া উচিত −

const output = [
   { 'name': 'JON', 'flight':100, 'uns': 12, 'sch': 35 },
   { 'name': 'BILL', 'flight':200, 'uns': 33, 'sch': 45}
];

আউটপুট

এর জন্য কোড হবে −

const arr = [
   { 'name': 'JON', 'flight':100, 'value': 12, type: 'uns' },
   { 'name': 'JON', 'flight':100, 'value': 35, type: 'sch' },
   { 'name': 'BILL', 'flight':200, 'value': 33, type: 'uns' },
   { 'name': 'BILL', 'flight':200, 'value': 45, type: 'sch' }
];
const groupArray = (arr = []) => {
   const res = arr.reduce(function (hash) {
      return function (r, o) {
         if (!hash[o.name]) {
            hash[o.name] = { name: o.name, flight: o.flight };
            r.push(hash[o.name]);
         }
         hash[o.name][o.type] = (hash[o.name][o.type] || 0) + o.value;
         return r;
      }
   }(Object.create(null)), []);
   return res;
};
console.log(groupArray(arr));

আউটপুট

এবং কনসোলে আউটপুট হবে −

[
   { name: 'JON', flight: 100, uns: 12, sch: 35 },
   { name: 'BILL', flight: 200, uns: 33, sch: 45 }
]

  1. কিভাবে JSON পাঠ্যকে জাভাস্ক্রিপ্ট JSON অবজেক্টে রূপান্তর করবেন?

  2. জাভাস্ক্রিপ্টে অবজেক্ট ডি-স্ট্রাকচারিং।

  3. জাভাস্ক্রিপ্টে WeakMap অবজেক্ট।

  4. জাভাস্ক্রিপ্টে ম্যাপ অবজেক্ট।