_.filter এবং _.select ফাংশন
Underscore.js একটি জনপ্রিয় লাইব্রেরি যা বিভিন্ন ইউটিলিটি ফাংশন সরবরাহ করে, যা ডেটা ম্যানিপুলেশন সহজ করে তোলে। এর মধ্যে দুটি গুরুত্বপূর্ণ ফাংশন হলো _.filter এবং _.select। যদিও _.select মূলত _.map এর একটি সিনোনিম (যেমন _.map ফাংশনের মত কাজ করে), তবে এখানে আমরা কেবল _.filter সম্পর্কে বিস্তারিত আলোচনা করব, যেহেতু এটি ডেটা ফিল্টার করার জন্য ব্যবহৃত হয়।
_.filter ফাংশন
_.filter হল একটি ইউটিলিটি ফাংশন যা একটি অ্যারে বা অ্যানবজেক্টের মধ্যে থেকে নির্দিষ্ট শর্ত অনুযায়ী আইটেমগুলো নির্বাচন (filter) করে একটি নতুন অ্যারে রিটার্ন করে। এই ফাংশনটি সাধারণত ব্যবহার করা হয়, যখন আপনি কিছু ডেটা নির্দিষ্ট শর্তের ভিত্তিতে ফিল্টার করতে চান।
_.filter ফাংশন একটি আর্গুমেন্ট হিসেবে একটি অ্যারে এবং একটি ফাংশন নেয়। ফাংশনটি প্রতিটি আইটেমের জন্য চালানো হয় এবং যদি সেই আইটেম শর্ত পূর্ণ করে, তাহলে এটি ফিল্টার করা হয়।
Sintax:
_.filter(collection, predicate)
collection: অ্যারে বা অবজেক্ট যা আপনি ফিল্টার করতে চান।predicate: একটি ফাংশন যা প্রতিটি আইটেমের জন্য পরীক্ষা করা হয়। যদি এটি সত্য (true) রিটার্ন করে, তবে সেই আইটেমটি নতুন অ্যারেতে অন্তর্ভুক্ত হবে।
উদাহরণ:
// একটি অ্যারে ডেটা
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// _.filter দিয়ে ফিল্টার করা (যত সংখ্যাটি ৫ এর চেয়ে বড়)
let result = _.filter(numbers, function(num) {
return num > 5;
});
console.log(result); // [6, 7, 8, 9, 10]
এখানে, _.filter ফাংশনটি numbers অ্যারে থেকে সব সংখ্যা নির্বাচন করেছে যেগুলো ৫ এর চেয়ে বড়।
_.select ফাংশন
_.select মূলত _.map এর সমতুল্য ছিল, এবং এখন _.map ফাংশনটি এটি প্রতিস্থাপন করেছে। এর মাধ্যমে আপনি একটি অ্যারের প্রতিটি আইটেমকে পরিবর্তন (transform) করতে পারেন বা একটি নতুন অ্যারে তৈরি করতে পারেন যা সংশোধিত আইটেম ধারণ করে। যদিও এর কাজ _.filter এর মতো নয়, তবে এটি সাধারণভাবে নতুন অ্যারে তৈরি করে।
Sintax:
_.select(collection, predicate)
collection: অ্যারে বা অবজেক্টpredicate: একটি ফাংশন যা প্রতিটি আইটেমের জন্য পরীক্ষা করা হয়।
এটি _.filter এর মতো কাজ করে, তবে মূলত এটি পুরানো _.map ফাংশনের একটি অংশ ছিল এবং এখন এটি অবলুপ্ত হয়ে গিয়েছে। আজকাল সাধারণত _.map ব্যবহার করা হয়।
উদাহরণ:
// একটি অ্যারে ডেটা
let numbers = [1, 2, 3, 4, 5];
// _.select ব্যবহার করে (যত সংখ্যাটি ৫ এর চেয়ে ছোট)
let result = _.select(numbers, function(num) {
return num < 5;
});
console.log(result); // [1, 2, 3, 4]
এখানে _.select ফাংশনটি numbers অ্যারে থেকে ৫ এর চেয়ে ছোট সংখ্যাগুলি নির্বাচন করেছে। তবে এটি এখন _.map ফাংশনের মধ্যে একীভূত হয়ে গিয়েছে, তাই নতুন প্রোজেক্টে আপনি _.map ব্যবহার করতে পারেন।
সারাংশ
_.filterব্যবহার করা হয় ডেটা ফিল্টার করার জন্য যেখানে একটি নির্দিষ্ট শর্ত বা ক্রাইটেরিয়া অনুযায়ী অ্যারে বা অ্যানবজেক্টের উপাদানগুলি ফিল্টার করা হয়।_.selectএবং_.mapমূলত একই কাজ করে, যেখানে আপনি অ্যারের প্রতিটি আইটেম পরিবর্তন করতে পারেন বা একটি নতুন অ্যারে তৈরি করতে পারেন। তবে আজকাল_.mapফাংশনই বেশি ব্যবহৃত হয় এবং এটি_.selectএর পরিবর্তে এসেছে।
আপনি যখন অ্যারে বা অ্যানবজেক্টের উপাদানগুলো নির্দিষ্ট শর্তে ফিল্টার করতে চান, তখন _.filter ফাংশনটি সবচেয়ে কার্যকর এবং সঠিক উপায়।
Read more