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

অবজেক্টের অ্যারেতে অনুরূপ সংখ্যাসূচক মান যোগ করা - জাভাস্ক্রিপ্ট

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

const arr = [
  {"firstName":"John", "value": 89},
  {"firstName":"Peter", "value": 151},
  {"firstName":"Anna", "value": 200},
  {"firstName":"Peter", "value": 22},
  {"firstName":"Anna","value": 60}
];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অ্যারে নেয় এবং যেসব অবজেক্টের firstName প্রোপার্টির মান একসমান, তাদের value প্রোপার্টিগুলো একসাথে যোগ করবে।

তাহলে, উপরের অ্যারেটির জন্য আউটপুট হবে:

const output = [
  {"firstName":"John", "value": 89},
  {"firstName":"Peter", "value": 173},
  {"firstName":"Anna", "value": 260}
];

প্রতিটি অবজেক্টের জন্য, আমরা রিকার্সিভভাবে তাদের অনুরূপ অবজেক্ট খুঁজে বের করব।

(এই প্রসঙ্গে অনুরূপ অবজেক্ট বলতে যাদের firstName মান একসমান)।

তারপর আমরা value প্রোপার্টিটি এক অবজেক্টে যোগ করব এবং অন্য অবজেক্টটি অ্যারেতে থেকে ডিলিট করব। এটি অ্যারেতি শেষ পর্যন্ত চলবে। শেষে আমাদের অ্যারেটি কাঙ্ক্ষিত অ্যারেতে রিডিউস হয়ে যাবে।

উদাহরণ

নিচের কোডটি দেখুন:

const arr = [
  {"firstName":"John", "value": 89},
  {"firstName":"Peter", "value": 151},
  {"firstName":"Anna", "value": 200},
  {"firstName":"Peter", "value": 22},
  {"firstName":"Anna","value": 60}
];

const sumSimilar = arr => {
  const res = [];
  for(let i = 0; i < arr.length; i++){
    const ind = res.findIndex(el => el.firstName === arr[i].firstName);
    if(ind === -1){
      res.push(arr[i]);
    }else{
      res[ind].value += arr[i].value;
    };
  };
  return res;
};

console.log(sumSimilar(arr));

আউটপুট

এটি কনসোলে নিচের আউটপুট তৈরি করবে:

[
  { firstName: 'John', value: 89 },
  { firstName: 'Peter', value: 173 },
  { firstName: 'Anna', value: 260 }
]
  1. জাভাস্ক্রিপ্ট array.values() মেথড

  2. জাভাস্ক্রিপ্টে অ্যারেতে নেস্টেড অবজেক্ট মানগুলোর যোগফল

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

  4. জাভাস্ক্রিপ্টে অ্যারে অবজেক্টের প্রোপার্টি ভ্যালু যোগ করে নতুন অবজেক্ট অ্যারে তৈরি