CoffeeScript, যা মূলত JavaScript-এ কম্পাইল হয়, JavaScript-এর মতোই map, filter, এবং reduce ফাংশন ব্যবহার করে ডাটা প্রসেসিং করার জন্য খুবই কার্যকর। এই ফাংশনগুলো অ্যারে (Array) থেকে বিভিন্ন উপায়ে মান বের করতে বা পরিবর্তন করতে সাহায্য করে। CoffeeScript-এ এগুলো ব্যবহার করা অনেকটা সহজ এবং সরল।
১. Map ফাংশন
map ফাংশন একটি নতুন অ্যারে তৈরি করে যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট ফাংশন দ্বারা প্রক্রিয়া করা হয়। এটি মূল অ্যারের কোন উপাদান পরিবর্তন না করে একটি নতুন অ্যারে প্রদান করে।
উদাহরণ:
numbers = [1, 2, 3, 4, 5]
squares = numbers.map (x) -> x * x
console.log squares
আউটপুট:
[1, 4, 9, 16, 25]
এখানে, map ফাংশনটি প্রতি সংখ্যাকে বর্গফল হিসেব করে একটি নতুন অ্যারে তৈরি করেছে।
JavaScript-এ কম্পাইল হওয়া:
var numbers, squares;
numbers = [1, 2, 3, 4, 5];
squares = numbers.map(function(x) {
return x * x;
});
console.log(squares);
২. Filter ফাংশন
filter ফাংশন একটি নতুন অ্যারে তৈরি করে যা শুধুমাত্র সেই উপাদানগুলো রাখে যা একটি নির্দিষ্ট শর্ত পূর্ণ করে। এটি মূল অ্যারের কোনো উপাদান পরিবর্তন না করে একটি নতুন অ্যারে প্রদান করে।
উদাহরণ:
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = numbers.filter (x) -> x % 2 == 0
console.log even_numbers
আউটপুট:
[2, 4, 6]
এখানে, filter ফাংশনটি শুধুমাত্র সেই উপাদানগুলো রাখছে যেগুলি x % 2 == 0 শর্ত পূর্ণ করে, অর্থাৎ যেগুলি সঠিকভাবে সেজন্য even (জোড়) সংখ্যা।
JavaScript-এ কম্পাইল হওয়া:
var numbers, even_numbers;
numbers = [1, 2, 3, 4, 5, 6];
even_numbers = numbers.filter(function(x) {
return x % 2 === 0;
});
console.log(even_numbers);
৩. Reduce ফাংশন
reduce ফাংশন একটি অ্যারে থেকে একক মান উৎপন্ন করতে ব্যবহৃত হয়। এটি প্রতিটি উপাদানকে একত্রিত করে একটি একক মান তৈরি করে, সাধারণত সমষ্টি, গড়, বা অন্যান্য গণনা করার জন্য ব্যবহৃত হয়।
উদাহরণ:
numbers = [1, 2, 3, 4, 5]
sum = numbers.reduce (acc, x) -> acc + x, 0
console.log sum
আউটপুট:
15
এখানে, reduce ফাংশনটি অ্যারের সব উপাদানের যোগফল হিসেব করেছে, যেখানে acc হলো আগের ফলাফল এবং x হলো বর্তমান উপাদান। আমরা 0 মান দিয়ে শুরু করেছি, অর্থাৎ প্রথমে যোগফল শূন্য থেকে শুরু হবে।
JavaScript-এ কম্পাইল হওয়া:
var numbers, sum;
numbers = [1, 2, 3, 4, 5];
sum = numbers.reduce(function(acc, x) {
return acc + x;
}, 0);
console.log(sum);
CoffeeScript-এ Map, Filter, Reduce ব্যবহার সম্পর্কিত আরো কিছু উদাহরণ
১. Map ব্যবহার করে নতুন অবজেক্ট তৈরি করা
persons = [{name: "Alice", age: 25}, {name: "Bob", age: 30}]
names = persons.map (person) -> person.name
console.log names
আউটপুট:
["Alice", "Bob"]
এখানে, map ফাংশনটি persons অ্যারের প্রতিটি অবজেক্ট থেকে শুধু নাম বের করেছে এবং একটি নতুন অ্যারে তৈরি করেছে।
২. Filter ব্যবহার করে মান ফিল্টার করা
persons = [{name: "Alice", age: 25}, {name: "Bob", age: 30}, {name: "Charlie", age: 35}]
adults = persons.filter (person) -> person.age >= 30
console.log adults
আউটপুট:
[{name: "Bob", age: 30}, {name: "Charlie", age: 35}]
এখানে, filter ফাংশনটি ৩০ বছরের বেশি বয়সী মানুষগুলোকে ফিল্টার করে।
৩. Reduce ব্যবহার করে অ্যারের উপাদান একত্রিত করা
numbers = [1, 2, 3, 4]
product = numbers.reduce (acc, x) -> acc * x, 1
console.log product
আউটপুট:
24
এখানে, reduce ফাংশনটি অ্যারের সব উপাদানের গুণফল হিসেব করেছে, যেখানে acc হলো আগের ফলাফল এবং x হলো বর্তমান উপাদান। আমরা 1 মান দিয়ে শুরু করেছি, অর্থাৎ প্রথমে গুণফল ১ থেকে শুরু হবে।
সারাংশ
- Map: অ্যারের প্রতিটি উপাদানের উপর একটি নির্দিষ্ট ফাংশন প্রয়োগ করে একটি নতুন অ্যারে তৈরি করে।
- Filter: একটি শর্ত অনুযায়ী অ্যারের উপাদানগুলো ফিল্টার করে একটি নতুন অ্যারে তৈরি করে।
- Reduce: অ্যারের সব উপাদান একত্রিত করে একটি একক মান তৈরি করে (যেমন যোগফল বা গুণফল)।
CoffeeScript-এ map, filter, এবং reduce ফাংশনগুলো অত্যন্ত শক্তিশালী এবং এগুলো ডাটা প্রসেসিংকে আরও সহজ এবং কার্যকরী করে তোলে।