কম্পিউটার

জাভাস্ক্রিপ্টে অবজেক্টের নতুন অ্যারেতে অ্যারে অবজেক্ট প্রোপার্টি মানের সমষ্টি


ধরুন আমাদের কাছে বস্তুর একটি বিন্যাস রয়েছে যাতে কিছু শিক্ষার্থীর তথ্য এবং তাদের চিহ্নগুলি এইরকম −

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 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. JavaScript array.values()

  2. জাভাস্ক্রিপ্ট ব্যবহার করে অ্যারেতে নেস্টেড অবজেক্টের মানের সমষ্টি

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

  4. জাভাস্ক্রিপ্টে অবজেক্ট প্রপার্টি নামের অ্যারে প্রতিস্থাপন করা হচ্ছে