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

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

মান লিয়ে, আমাদের একটি অবজেক্টের অ্যারে আছে যাতে কিছু ছাত্র ও তাদের নম্বর ডেটা আছে -

const arr = [ 
  { subject: 'Maths', marks: '40', noOfStudents: '5' }, 
  { subject: 'Science', marks: '50', noOfStudents: '16' }, 
  { subject: 'History', marks: '35', noOfStudents: '23' }, 
  { subject: 'Science', marks: '65', noOfStudents: '2' }, 
  { subject: 'Maths', marks: '30', noOfStudents: '12' }, 
  { subject: 'History', marks: '55', noOfStudents: '20' }, 
];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অ্যারে গ্রহণ করবে। ফাংশনটি অবজেক্টের 'subject' প্রোপার্টি 베이সে রিডান্ড্যান্ট এন্ট্রি এলিমিনেট করবে। এর अलावा, ফাংশনটি সব marks এবং no of students একটি ইউনিক অবজেক্টে যোগ করবে।

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

const output = [ 
  { subject: 'Maths', marks: '70', noOfStudents: '17' }, 
  { subject: 'Science', marks: '115', noOfStudents: '18' }, 
  { subject: 'History', marks: '95', noOfStudents: '43' }, 
];

উদাহরণ

const arr = [ 
  { subject: 'Maths', marks: '40', noOfStudents: '5' }, 
  { subject: 'Science', marks: '50', noOfStudents: '16' }, 
  { subject: 'History', marks: '35', noOfStudents: '23' }, 
  { subject: 'Science', marks: '65', noOfStudents: '2' }, 
  { subject: 'Maths', marks: '30', noOfStudents: '12' }, 
  { subject: 'History', marks: '55', noOfStudents: '20' }, 
]; 
const groupBySubject = (arr = []) => { 
  const map = {}; 
  let res = []; 
  res = arr.reduce((acc, val) => { 
    const { subject, marks, noOfStudents } = val; 
    const { length: l } = acc; 
    if(map.hasOwnProperty(subject)){ 
      acc[map[subject]]['marks'] = +marks; 
      acc[map[subject]]['noOfStudents'] = +noOfStudents; 
    } else { 
      map[subject] = l; 
      acc.push({ 
        subject: subject, 
        marks: +marks, 
        noOfStudents: +noOfStudents 
      }); 
    }; 
    return acc; 
  }, []); 
  return res; 
}; 
console.log(groupBySubject(arr));

আউটপুট

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

[ 
  { subject: 'Maths', marks: 30, noOfStudents: 12 }, 
  { subject: 'Science', marks: 65, noOfStudents: 2 }, 
  { subject: 'History', marks: 55, noOfStudents: 20 } 
]
  1. জাভাস্ক্রিপ্ট array.values() মেথড

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

  3. জাভাস্ক্রিপ্ট অবজেক্টকে নতুন অ্যারেতে ফরম্যাট করা

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