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

জাভাস্ক্রিপ্টে JSON ডেটা থেকে একাধিক ফিল্টার ব্যবহার করে গড় বের করা


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

const arr = [
  { "SupplierName" : "John", "Category " : "A", "Points" : 3 },
  { "SupplierName" : "John", "Category " : "A", "Points" : 11 },
  { "SupplierName" : "John", "Category " : "A", "Points" : undefined },
  { "SupplierName" : "John", "Category " : "B", "Points" : 2 },
  { "SupplierName" : "John", "Category " : "B", "Points" : 6 },
  { "SupplierName" : "Praveen", "Category " : "A", "Points" : 3 },
  { "SupplierName" : "Praveen", "Category " : "A", "Points" : 7 }
];

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

  • একই SupplierName এবং Category ফিল্ড 가진 সাপ্লায়ারদের একই ইউনিক অবজেক্ট-এ গ্রুপ করা (রিপিট মানে একই "SupplierName" এবং "Category" ফিল্ড)।
  • তাদের পয়েন্টগুলো যোগ করা।
  • প্রতিটি অবজেক্টে একটি নতুন "average" ফিল্ড যোগ করা, যেটিতে সেই সাপ্লায়ারের গড় পয়েন্ট থাকবে।

শেষে আউটপুট হবে নিচের মতো −

const output = [
  { "SupplierName" : "John", "Category " : "A", "Points" : 14, "Average" : 7 },
  { "SupplierName" : "John", "Category " : "B", "Points" : 8, "Average" : 4 },
  { "SupplierName" : "Praveen", "Category " : "A", "Points" : 10, "Average" : 5 }
];

উদাহরণ

const arr = [
  { "SupplierName" : "John", "Category " : "A", "Points" : 3 },
  { "SupplierName" : "John", "Category " : "A", "Points" : 11 },
  { "SupplierName" : "John", "Category " : "A", "Points" : undefined },
  { "SupplierName" : "John", "Category " : "B", "Points" : 2 },
  { "SupplierName" : "John", "Category " : "B", "Points" : 6 },
  { "SupplierName" : "Praveen", "Category " : "A", "Points" : 3 },
  { "SupplierName" : "Praveen", "Category " : "A", "Points" : 7 }
];
const groupAndAverage = (arr = []) => {
  const groups = arr.reduce((acc, obj) => {
    const name = obj.SupplierName + obj.Category;
    if (acc[name]) {
      if (obj.Points) (acc[name].Points += obj.Points) && ++acc[name].Average;
    }
    else { acc[name] = obj;
      acc[name].Average = 1;
      // 'Average' অ্যাট্রিবিউটকে আইটেম কাউন্টার হিসেবে ব্যবহার (প্রথম ফেজে)
    };
    return acc;
  }, {});
  // "Points এর গড়" বের করা
  const res = Object.keys(groups).map( name => {
    groups[name].Average = Math.round(groups[name].Points/groups[name].Average);
    return groups[name];
  });
  return res;
};
console.log(JSON.stringify(groupAndAverage(arr), undefined, 4));

আউটপুট

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

[
  {
    "SupplierName": "John",
    "Category ": "A",
    "Points": 22,
    "Average": 6
  },
  {
    "SupplierName": "Praveen",
    "Category ": "A",
    "Points": 10,
    "Average": 5
  }
]

  1. জাভাস্ক্রিপ্ট ব্যবহার করে JSON অ্যারে থেকে ডেটা পড়া

  2. জাভাস্ক্রিপ্টে টেক্সটএরিয়াতে JSON ডেটা প্রিটিফাই করা

  3. জাভাস্ক্রিপ্টে অবজেক্ট অ্যারে থেকে গড় বয়স বের করা

  4. এক্সেল মাস্টারি: একাধিক ক্রাইটেরিয়া দিয়ে টেবিল ডেটা দক্ষতার সাথে এক্সট্র্যাক্ট করুন