JavaScript এর reduce() মেথড

JavaScript এর reduce() মেথড: বিস্তারিত টিউটোরিয়াল

JavaScript এর reduce() মেথড একটি খুব শক্তিশালী অ্যারে মেথড যা একটি অ্যারের সব উপাদান নিয়ে একটি একক মান তৈরি করে। এটি অ্যারের প্রতিটি উপাদান নিয়ে একটি কলব্যাক ফাংশন চালায় এবং পূর্বের অপারেশন থেকে পাওয়া মানকে পরবর্তী ধাপে নিয়ে কাজ করে। এই পদ্ধতিকে রিডাকশন বলা হয়।

১. reduce() মেথড কী?

reduce() মেথড অ্যারের প্রতিটি উপাদানের ওপর কাজ করে এবং তাদেরকে একটি একক আউটপুটে রূপান্তর করে। যেমন: সব সংখ্যার যোগফল, গুণফল, অবজেক্ট তৈরি করা ইত্যাদি। এটি দুটি প্যারামিটার নেয়: একটি কলব্যাক ফাংশন এবং একটি initial value (শুরুতে অ্যাকুমুলেটরের মান)।

২. সিনট্যাক্স

সিনট্যাক্স বর্ণনা
array.reduce(function(accumulator, currentValue, index, array) {
return newAccumulator;
}, initialValue);
  • accumulator: আগের কলব্যাক থেকে ফেরত আসা মান বা initialValue
  • currentValue: বর্তমানে প্রক্রিয়াকৃত উপাদান
  • index: বর্তমান উপাদানের ইনডেক্স (ঐচ্ছিক)
  • array: মূল অ্যারে (ঐচ্ছিক)
  • initialValue: প্রথমবারের জন্য accumulator এর মান

৩. reduce() এর ব্যবহার ও উদাহরণ

নিচে reduce() মেথডের কয়েকটি উদাহরণ দেওয়া হলো:

<script>
  // সংখ্যা অ্যারের যোগফল নির্ণয় করা
  let numbers = [10, 20, 30, 40];
  let sum = numbers.reduce(function(accumulator, currentValue) {
    return accumulator + currentValue;
  }, 0);
  console.log(sum); // 100

  // একই কাজ অ্যারো ফাংশন দিয়ে সংক্ষিপ্ত রূপে
  let total = numbers.reduce((acc, cur) => acc + cur, 0);
  console.log(total); // 100

  // সংখ্যা অ্যারের গুণফল নির্ণয় করা
  let product = numbers.reduce((acc, cur) => acc * cur, 1);
  console.log(product); // 240000

  // অবজেক্ট অ্যারে থেকে নামগুলোকে আলাদা স্ট্রিং হিসেবে যুক্ত করা
  let people = [
    {name: "রহিম", age: 25},
    {name: "করিম", age: 30},
    {name: "হাসান", age: 20}
  ];
  let allNames = people.reduce((acc, person) => acc + person.name + ", ", "");
  console.log(allNames); // "রহিম, করিম, হাসান, "
</script>

৪. reduce() এর গুরুত্বপূর্ণ বিষয়

  • reduce() সর্বদা একটি একক মান রিটার্ন করে।
  • initialValue না দিলে, reduce প্রথম উপাদানকে accumulator ধরে নেয়।
  • কলব্যাক ফাংশনে চারটি প্যারামিটার ব্যবহার করা যায়, কিন্তু প্রায়শই প্রথম দুইটি যথেষ্ট।
  • reduce() দিয়ে যোগফল, গুণফল, স্ট্রিং সংযোজন, অবজেক্ট তৈরি ইত্যাদি করা যায়।

৫. initialValue না দিলে কী হয়?

যদি initialValue প্রদান না করা হয়, তাহলে reduce() প্রথম উপাদানকে accumulator ধরে নেয় এবং কলব্যাক ফাংশন অ্যারের দ্বিতীয় উপাদান থেকে শুরু হয়। এটি ব্যবহারে সাবধান থাকতে হবে, কারণ খালি অ্যারেতে reduce() ব্যবহার করলে ত্রুটি দেখা দিতে পারে।

<script>
  let nums = [5, 10, 15];

  // initialValue না দিলে
  let res = nums.reduce((acc, cur) => acc + cur);
  console.log(res); // 30 (5 + 10 + 15)

  // খালি অ্যারে তে ব্যবহার করলে error
  let empty = [];
  // let err = empty.reduce((acc, cur) => acc + cur); // TypeError: Reduce of empty array with no initial value
</script>

৬. উন্নত উদাহরণ: অবজেক্টের গড় বয়স নির্ণয়

<script>
  let users = [
    {name: "আলিম", age: 28},
    {name: "রুনি", age: 22},
    {name: "সায়মা", age: 30},
    {name: "নুর", age: 26}
  ];

  let totalAge = users.reduce((acc, user) => acc + user.age, 0);
  let avgAge = totalAge / users.length;
  console.log("গড় বয়স:", avgAge); // গড় বয়স: 26.5
</script>

৭. উপসংহার

JavaScript এর reduce() মেথড দিয়ে আপনি অ্যারের সব উপাদান থেকে সহজেই একটি একক মান তৈরি করতে পারেন। এটি ডাটা প্রসেসিং ও বিশ্লেষণে অত্যন্ত কার্যকর। জটিল লজিক ও গণনা সহজ করতে reduce() মেথডের ভালো ধারণা থাকা দরকার।


 

Leave a Reply