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

জাভাস্ক্রিপ্টে দুটি অবজেক্ট তুলনা করে নেস্টেড ভ্যালু গ্রুপিং করা


মনে করুন আমাদের নিচের মত একটি JSON অবজেক্ট আছে −

const input = {    "before": {      "device": [        {          "id": "1234",          "price": "10",          "features": [            {              "name": "samsung",              "price": "10"            },            {              "name": "Apple",              "price": "20"            }          ]        },        {          "id": "2154",          "price": "20",          "features": [            {              "name": "samsung",              "price": "30"            },            {              "name": "Moto",              "price": "40"            }          ]        }      ]    },    "after": {      "device": [        {          "id": "1234",          "price": "50",          "features": [            {              "name": "samsung",              "price": "20"            },            {              "name": "Lenovo",              "price": "30"            }          ]        },        {          "id": "2158",          "price": "40",          "features": [            {              "name": "samsung",              "price": "30"            }          ]         }      ]  } };

আমাদের কাজ হলো before ও after অবজেক্টে একই id থাকলে সেটি ও তার ফিচারগুলো একসাথে গ্রুপ করা।

প্রয়োজনীয় আউটপুট নিচের ছবিতে ভালোভাবে বর্ণনা করা হয়েছে।

জাভাস্ক্রিপ্টে দুটি অবজেক্ট তুলনা করে নেস্টেড ভ্যালু গ্রুপিং করা

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

উদাহরণ

নিচে কোডটি দেওয়া হলো −

const input = {    "before": {       "device": [       {          "id": "1234",          "price": "10",          "features": [          {             "name": "samsung",             "price": "10"          },          {             "name": "Apple",             "price": "20"          }          ]          },          {             "id": "2154",             "price": "20",             "features": [             {                "name": "samsung",                "price": "30"             },             {                "name": "Moto",                "price": "40"             }             ]          }          ]       },       "after": {          "device": [          {             "id": "1234",             "price": "50",             "features": [             {                "name": "samsung",                "price": "20"             },             {                "name": "Lenovo",                "price": "30"             }             ]          },          {             "id": "2158",             "price": "40",             "features": [             {                "name": "samsung",                "price": "30"             }             ]          }       ]    }   }; const formatJSON = data => {    const sub = Object.fromEntries(Object.keys(data).map(k => [k, 0]));    return Object.values(Object.entries(data).reduce((r, [col, { device }])    => {       device.forEach(({ id, price, features }) => {          r[id] = r[id] || [{ id, ...sub }];          r[id][0][col] = price;          features.forEach(({ name, price }) => {             let temp = r[id].find(q => q.name === name);             if (!temp){                r[id].push(temp = { name, ...sub });             };             temp[col] = price;          });       });       return r;    }, {})); }; console.log(formatJSON(input));

আউটপুট

কনসোলে নিম্নলিখিত আউটপুট দেখা যাবে −

[  [    { id: '1234', before: '10', after: '50' },    { name: 'samsung', before: '10', after: '20' },    { name: 'Apple', before: '20', after: 0 },    { name: 'Lenovo', before: 0, after: '30' }  ],  [    { id: '2154', before: '20', after: 0 },    { name: 'samsung', before: '30', after: 0 },    { name: 'Moto', before: '40', after: 0 }  ],  [    { id: '2158', before: 0, after: '40' },    { name: 'samsung', before: 0, after: '30' }  ] ]

  1. জাভাস্ক্রিপ্ট অ্যারে অবজেক্ট গণনা করার উপায়

  2. জাভাস্ক্রিপ্ট - অ্যারে অবজেক্টের length প্রোপার্টি

  3. জাভাস্ক্রিপ্টে অবজেক্টের অ্যারে ID দিয়ে গ্রুপ করা

  4. জাভাস্ক্রিপ্ট অবজেক্টের অ্যারেতে অ্যারে মেথডগুলো ব্যবহার করা