JavaScript এর filter() মেথড: সম্পূর্ণ টিউটোরিয়াল
filter() মেথড হলো JavaScript এর একটি গুরুত্বপূর্ণ Array মেথড যা মূল অ্যারের উপাদানগুলোর মধ্যে নির্দিষ্ট শর্ত পূরণ করা উপাদানগুলো বের করে একটি নতুন অ্যারে রিটার্ন করে। সহজ কথায়, এটি একটি অ্যারের থেকে নির্দিষ্ট শর্ত অনুযায়ী ফিল্টার করে শুধুমাত্র প্রয়োজনীয় ডেটাগুলো আলাদা করে দেয়। নিচে আমরা বিস্তারিত এই মেথডটি কীভাবে কাজ করে এবং কিভাবে ব্যবহার করতে হয় তা শিখবো।
১. filter() মেথড কী?
filter() মেথড একটি কলব্যাক ফাংশন নেয়, যা অ্যারের প্রতিটি উপাদানের জন্য চালানো হয়। কলব্যাক ফাংশন যদি true রিটার্ন করে, তাহলে সেই উপাদান নতুন অ্যারেতে অন্তর্ভুক্ত হয়; আর যদি false রিটার্ন করে, তাহলে বাদ পড়ে যায়। ফলে, আমরা নির্দিষ্ট শর্ত অনুযায়ী একটি সাবসেট অ্যারে পাই।
২. সিনট্যাক্স
| সিনট্যাক্স | বর্ণনা |
|---|---|
| array.filter(function(element, index, array) { return condition; }) |
কলব্যাক ফাংশন প্রতিটি উপাদানের জন্য চালানো হয় এবং যেখানে শর্ত সত্য, সেগুলো নতুন অ্যারেতে রাখা হয়।
|
৩. filter() এর ব্যবহার ও উদাহরণ
নীচে কিছু উদাহরণ দিয়ে দেখানো হলো filter() কিভাবে কাজ করেঃ
<script>
// সংখ্যা অ্যারের মধ্যে থেকে ৫ এর বেশি সংখ্যা ফিল্টার করা
let numbers = [2, 5, 8, 1, 4, 10, 7];
let greaterThanFive = numbers.filter(function(num) {
return num > 5;
});
console.log(greaterThanFive); // [8, 10, 7]
// ES6 অ্যারো ফাংশন ব্যবহার করে সংক্ষিপ্ত কোড
let evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // [2, 8, 4, 10]
// অবজেক্ট অ্যারের মধ্যে থেকে নির্দিষ্ট বয়সের বেশি ব্যক্তিদের বাছাই
let people = [
{name: "রাহিম", age: 28},
{name: "করিম", age: 20},
{name: "সুমি", age: 32}
];
let adults = people.filter(person => person.age >= 21);
console.log(adults);
/*
[
{name: "রাহিম", age: 28},
{name: "সুমি", age: 32}
]
*/
</script>
৪. filter() এর গুরুত্বপূর্ণ বৈশিষ্ট্য
- নতুন অ্যারে: filter() একটি নতুন অ্যারে তৈরি করে যা শুধুমাত্র শর্ত পূরণ করে এমন উপাদান রাখে।
- মূল অ্যারে অপরিবর্তিত: filter() মূল অ্যারেকে পরিবর্তন করে না।
- কলব্যাক ফাংশনের আর্গুমেন্ট: কলব্যাক ফাংশন তিনটি আর্গুমেন্ট নিতে পারে — element, index, এবং array।
- শর্ত নির্ভর ফিল্টারিং: আপনি যেকোনো শর্ত ব্যবহার করে ফিল্টার করতে পারেন, যেমন সংখ্যা, স্ট্রিং, অবজেক্ট প্রোপার্টি ইত্যাদি।
৫. map() ও filter() এর মধ্যে পার্থক্য
| filter() | map() |
|---|---|
| নির্দিষ্ট শর্ত পূরণ করে এমন উপাদানগুলো ফিল্টার করে নতুন অ্যারে তৈরি করে। | প্রতিটি উপাদানকে পরিবর্তন করে নতুন মানের অ্যারে তৈরি করে। |
| নতুন অ্যারের দৈর্ঘ্য মূল অ্যারের থেকে কম বা সমান হতে পারে। | নতুন অ্যারের দৈর্ঘ্য সবসময় মূল অ্যারের সমান থাকে। |
৬. filter() এর উন্নত উদাহরণ
<script>
// স্ট্রিং অ্যারের মধ্যে 'apple' অন্তর্ভুক্ত উপাদান ফিল্টার করা
let fruits = ['apple', 'banana', 'grape', 'pineapple', 'mango'];
let apples = fruits.filter(fruit => fruit.includes('apple'));
console.log(apples); // ['apple', 'pineapple']
// অবজেক্ট অ্যারে থেকে নির্দিষ্ট মানের ফিল্টারিং
let products = [
{id: 1, name: 'ল্যাপটপ', price: 50000},
{id: 2, name: 'মোবাইল', price: 20000},
{id: 3, name: 'ট্যাবলেট', price: 15000}
];
let expensiveProducts = products.filter(product => product.price > 18000);
console.log(expensiveProducts);
/*
[
{id: 1, name: 'ল্যাপটপ', price: 50000},
{id: 2, name: 'মোবাইল', price: 20000}
]
*/
</script>
৭. উপসংহার
JavaScript এর filter() মেথড অ্যারে থেকে শর্ত অনুযায়ী প্রয়োজনীয় উপাদান বাছাই করার সবচেয়ে সহজ ও কার্যকরী পদ্ধতি। এটি কোডকে পরিষ্কার এবং সহজবোধ্য করে তোলে এবং ডেটা ফিল্টারিং-এর জন্য অপরিহার্য। প্র্যাকটিসের মাধ্যমে আপনি এই মেথডে দক্ষতা অর্জন করতে পারেন এবং আপনার জাভাস্ক্রিপ্ট প্রজেক্টগুলোকে আরো শক্তিশালী করতে পারবেন।