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

জাভাস্ক্রিপ্টে সর্বোচ্চ স্কোরের অ্যারে আইটেম(গুলো) ফেরত দেওয়া


আমাদের কাছে একটি অ্যারে অফ অ্যারে রয়েছে যাতে কিছু ছাত্রের কিছু বিষয়ে প্রাপ্ত নম্বর রয়েছে:

const arr = [
  ['Math', 'John', 100],
  ['Math', 'Jake', 89],
  ['Math', 'Amy', 93],
  ['Science', 'Jake', 89],
  ['Science', 'John', 89],
  ['Science', 'Amy', 83],
  ['English', 'John', 82],
  ['English', 'Amy', 81],
  ['English', 'Jake', 72] ];

আমাদের একটি ফাংশন লিখতে হবে যা এই অ্যারে নেবে এবং একটি অবজেক্টের অ্যারে ফেরত দেবে, প্রতিটি বিষয়ের জন্য একটি অবজেক্ট এবং সেই বিষয়ের টপ স্কোরারের বিবরণ।

আমাদের আউটপুট হওয়া উচিত এমন:

[
  { "Subject": "Math", "Top": [ { Name: "John", Score: 100} ] },
  { "Subject": "Science", "Top": [ { Name: "Jake", Score: 89}, { Name: "John", Score: 89} ] },
  { "Subject": "English", "Top": [ { Name: "John", Score: 82} ] } ]

এই ফাংশনের কোড লিখি:

উদাহরণ

const arr = [
  ['Math', 'John', 100],
  ['Math', 'Jake', 89],
  ['Math', 'Amy', 93],
  ['Science', 'Jake', 89],
  ['Science', 'John', 89],
  ['Science', 'Amy', 83],
  ['English', 'John', 82],
  ['English', 'Amy', 81],
  ['English', 'Jake', 72] ];
const groupScore = arr => {
  return arr.reduce((acc, val, index, array) => {
    const [sub, name, score] = val;
    const ind = acc.findIndex(el => el['Subject'] === val[0]);
    if(ind !== -1){
      if(score > acc[ind]["Top"][0]["score"]){
        acc[ind]["Top"] = [{ "name": name,"score": score }];
      }else if(score === acc[ind]["Top"][0]["score"]){
        acc[ind]["Top"].push({ "name": name,"score": score });
      }
    }else{
      acc.push({ "Subject": sub,"Top": [{"name": name, "score": score}] });
    };
    return acc;
  }, []);
};
console.log(JSON.stringify(groupScore(arr), undefined, 4));

আউটপুট

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

[
  {
    "Subject": "Math",
    "Top": [
      { "name": "John","score": 100 }
    ]
  },
  {
    "Subject": "Science",
    "Top": [
      { "name": "Jake", "score": 89 },
      { "name": "John", "score": 89 }
    ]
  },
  {
    "Subject": "English",
    "Top": [
      { "name": "John", "score": 82 }
    ]
  }
]

  1. জাভাস্ক্রিপ্টে new কীওয়ার্ড দিয়ে অ্যারে তৈরির পদ্ধতি

  2. জাভাস্ক্রিপ্টে শর্তসাপেক্ষে অ্যারে জয়েন করা

  3. জাভাস্ক্রিপ্টে অ্যাসোসিয়েটিভ অ্যারে ফিল্টার করা অন্য অ্যারে দিয়ে

  4. জাভাস্ক্রিপ্টে টুইস্টসহ এলিমেন্টের মধ্যে সর্বোচ্চ পার্থক্য