Array Iteration Methods (map(), filter(), reduce())

Array এবং Object Methods - জাভাস্ক্রিপ্ট ইএস৬ (ES6) - Web Development

290

ES6 (ECMAScript 2015) এ নতুন কিছু array iteration methods (যেমন map(), filter(), এবং reduce()) পরিচিত হয়েছে, যা array গুলোর উপর কাজ করার প্রক্রিয়াকে আরও সহজ এবং শক্তিশালী করেছে। এগুলো functional programming ধারণার সাথে কাজ করে এবং array ডেটা স্ট্রাকচারের উপাদানগুলোকে সহজভাবে প্রক্রিয়াকরণ করতে সাহায্য করে।


1. map() Method

map() method একটি নতুন array তৈরি করে, যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট function দিয়ে প্রক্রিয়াকৃত হয়। এটি মূল array পরিবর্তন করে না, বরং একটি নতুন array রিটার্ন করে।

ব্যবহার:

const numbers = [1, 2, 3, 4, 5];

// প্রতিটি উপাদানকে দ্বিগুণ করতে map() ব্যবহার
const doubledNumbers = numbers.map(number => number * 2);

console.log(doubledNumbers); // [2, 4, 6, 8, 10]

map() method একটি callback function গ্রহণ করে, যেখানে:

  • currentValue: array এর বর্তমান উপাদান।
  • index (optional): বর্তমান উপাদানের ইনডেক্স।
  • array (optional): মূল array।

অধিক উদাহরণ:

const users = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 30 },
  { name: 'Mark', age: 35 }
];

// `map()` ব্যবহার করে users array থেকে শুধুমাত্র নামের array তৈরি করা
const names = users.map(user => user.name);

console.log(names); // ["John", "Jane", "Mark"]

2. filter() Method

filter() method array এর উপাদানগুলোকে ফিল্টার করে একটি নতুন array রিটার্ন করে, যেখানে শুধুমাত্র সেই উপাদানগুলো থাকবে, যেগুলো একটি নির্দিষ্ট শর্ত পূর্ণ করে। এটি মূল array পরিবর্তন করে না।

ব্যবহার:

const numbers = [1, 2, 3, 4, 5];

// filter() ব্যবহার করে সুধুমাত্র বিজোড় সংখ্যাগুলি বের করা
const oddNumbers = numbers.filter(number => number % 2 !== 0);

console.log(oddNumbers); // [1, 3, 5]

filter() method একটি callback function গ্রহণ করে, যেখানে:

  • currentValue: array এর বর্তমান উপাদান।
  • index (optional): বর্তমান উপাদানের ইনডেক্স।
  • array (optional): মূল array।

অধিক উদাহরণ:

const users = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 30 },
  { name: 'Mark', age: 35 },
  { name: 'Lucy', age: 40 }
];

// filter() ব্যবহার করে বয়স 30 এর বেশি এমন users ফিল্টার করা
const olderUsers = users.filter(user => user.age > 30);

console.log(olderUsers);
// [ { name: 'Mark', age: 35 }, { name: 'Lucy', age: 40 } ]

3. reduce() Method

reduce() method array এর উপাদানগুলোকে একটি একক মানে রিডিউস (সংকলন) করতে ব্যবহৃত হয়। এটি মূল array এর সমস্ত উপাদানকে একটি accumulator (যে মানটি আমরা তৈরি করছি) দিয়ে প্রক্রিয়াকরণ করে এবং একটি একক মান রিটার্ন করে।

ব্যবহার:

const numbers = [1, 2, 3, 4, 5];

// reduce() ব্যবহার করে array এর সব সংখ্যা যোগফল বের করা
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);

console.log(sum); // 15

reduce() method দুটি প্রাথমিক আর্গুমেন্ট গ্রহণ করে:

  • callback: প্রতিটি উপাদান প্রক্রিয়া করার function, যেটি দুটি প্যারামিটার নেয়:
    • accumulator: আগের iteration থেকে আগত মান (প্রথম iteration এ এটি initial value হবে)।
    • currentValue: বর্তমান iteration এ array এর উপাদান।
  • initialValue (optional): accumulator এর প্রাথমিক মান। যদি প্রদান না করা হয়, তবে প্রথম iteration এ প্রথম array উপাদানটি accumulator হিসেবে ব্যবহৃত হবে।

অধিক উদাহরণ:

const numbers = [1, 2, 3, 4, 5];

// reduce() ব্যবহার করে সব সংখ্যা গুনফল বের করা
const product = numbers.reduce((accumulator, currentValue) => accumulator * currentValue, 1);

console.log(product); // 120

এখানে, 1 প্রাথমিক মান দেওয়া হয়েছে, যাতে accumulator এর গুনফল প্রথম থেকে শুরু হয়।


মোটামুটি তুলনা:

  • map(): array এর প্রতিটি উপাদানকে পরিবর্তন করে এবং একটি নতুন array রিটার্ন করে।
  • filter(): array এর উপাদানগুলোকে ফিল্টার করে একটি নতুন array রিটার্ন করে, যেখানে শুধুমাত্র শর্ত পূর্ণ করা উপাদানগুলো থাকবে।
  • reduce(): array এর সব উপাদানকে একটি একক মানে রিডিউস (সংকলন) করে, যেমন যোগফল, গুনফল, বা কোনো জটিল গণনা।

map(), filter(), এবং reduce() ES6 এর powerful array iteration methods যা আপনার কোডকে আরও পরিষ্কার, সংক্ষিপ্ত এবং কার্যকরী করতে সাহায্য করে। এগুলোর মাধ্যমে আপনি array manipulation কে declarative এবং functional programming স্টাইলে করতে পারেন, যা কোডের maintainability এবং readability উন্নত করে।

Content added By
Promotion

Are you sure to start over?

Loading...