কম্পিউটার

অনন্য ক্ষেত্রের মাধ্যমে বস্তুর বৈশিষ্ট্য একত্রিত করুন তারপর ডেটা প্রিন্ট করুন - জাভাস্ক্রিপ্ট


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

ছাত্ররা অবজেক্ট এখানে দেওয়া হল -

const students = {
   marks: [{
      roll: 123,
      mark: 89
   }, {
      roll: 143,
      mark: 69
   }, {
      roll: 126,
      mark: 91
   }, {
      roll: 112,
      mark: 80
   }],
names: [{
   name: 'Aashish',
   roll: 126
}, {
   name: 'Sourav',
   roll: 112
}, {
   name: 'Vineet',
   roll: 143
}, {
   name: 'Kartik',
   roll: 123
}]
}

আসুন একটি ফাংশন সংজ্ঞায়িত করি যা স্টুডেন্ট অবজেক্টে নেয় এবং প্রোপার্টিগুলিকে একত্রিত করে যেমন, কোনও অতিরিক্ত স্থান ব্যবহার না করে −

const combineProperties = (students) => {
   const { marks, names } = students;
   marks.forEach(marksObj => {
      const { roll } = marksObj;
      marksObj.name = names.find(namesObj => namesObj.roll ===roll).name;
   })
   delete students['names'];
};
combineProperties(students);
console.log(students);

এই কোডের সময় জটিলতা হল O(mn) যেখানে m এবং n হল অ্যারের নাম এবং চিহ্নগুলির স্বতন্ত্র আকার এবং এই O(1) এর স্থান জটিলতা। যাইহোক, মার্কস অ্যারের প্রতিটি উপাদানের জন্য একটি নতুন সম্পত্তি তৈরি করা হচ্ছে।

এখানে সম্পূর্ণ কোড -

উদাহরণ

const students = {
   marks: [{
      roll: 123,
      mark: 89
   }, {
      roll: 143,
      mark: 69
   }, {
      roll: 126,
      mark: 91
   }, {
      roll: 112,
      mark: 80
   }],
   names: [{
      name: 'Aashish',
      roll: 126
   }, {
      name: 'Sourav',
      roll: 112
   }, {
      name: 'Vineet',
      roll: 143
   }, {
      name: 'Kartik',
      roll: 123
   }]
}
const combineProperties = (students) => {
   const { marks, names } = students;
   marks.forEach(marksObj => {
      const { roll } = marksObj;
      marksObj.name = names.find(namesObj => namesObj.roll ===roll).name;
   })
   delete students['names'];
};
combineProperties(students);
console.log(students);

আউটপুট

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

{
   marks: [
      { roll: 123, mark: 89, name: 'Kartik' },{ roll: 143, mark: 69, name: 'Vineet' },
      { roll: 126, mark: 91, name: 'Aashish' },{ roll: 112, mark: 80, name: 'Sourav' }
   ]
}

  1. জাভাস্ক্রিপ্টে অবজেক্টের বৈশিষ্ট্যগুলি কীভাবে মুছবেন?

  2. অ্যারের বৈশিষ্ট্যের দৈর্ঘ্য অনুসারে জাভাস্ক্রিপ্ট অবজেক্ট বাছাই করা।

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

  4. জাভাস্ক্রিপ্টে প্রতিটি বস্তুর জন্য একটি অনন্য আইডি কীভাবে তৈরি করবেন?