Filtering Operators এর ভূমিকা

Filtering Operators - আরএক্সজেএস (RxJS) - Web Development

249

RxJS (Reactive Extensions for JavaScript) এ Filtering Operators একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এই অপারেটরগুলি ডেটার স্ট্রিম থেকে নির্দিষ্ট মান বা ইভেন্টগুলোকে নির্বাচন (filter) করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি শুধুমাত্র সেই মানগুলো পেতে পারেন যেগুলি আপনার নির্দিষ্ট শর্ত পূরণ করে। Filtering অপারেটরগুলির মাধ্যমে আপনি অবাঞ্ছিত ডেটা বা ইভেন্টগুলো সহজেই ফিল্টার করে প্রয়োজনীয় ডেটা বের করতে পারেন।

এখানে আমরা RxJS-এ কিছু গুরুত্বপূর্ণ Filtering Operators নিয়ে আলোচনা করবো এবং তাদের ব্যবহার ব্যাখ্যা করবো।


1. filter()

filter() অপারেটরটি Observable স্ট্রিমের মানগুলির মধ্যে থেকে একটি নির্দিষ্ট শর্ত পূর্ণ করার মাধ্যমে ডেটা ফিল্টার করে।

বৈশিষ্ট্য:

  • এটি একটি শর্ত নির্ধারণ করতে ব্যবহার হয়, যা Observable থেকে প্রাপ্ত মানের মধ্যে কেবলমাত্র সেই মানগুলিকে রাখতে সহায়তা করে যেগুলি শর্তটি পূর্ণ করে।
  • এটি সাধারণভাবে boolean শর্ত বা ফাংশন হিসেবে ব্যবহার করা হয়।

উদাহরণ:

import { from } from 'rxjs';
import { filter } from 'rxjs/operators';

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

numbers.pipe(
  filter(value => value % 2 === 0) // শুধুমাত্র even সংখ্যাগুলো নেবে
).subscribe(console.log);

এখানে, filter() অপারেটরটি শুধুমাত্র even সংখ্যাগুলো (২, ৪) গ্রহণ করবে এবং তা সাবস্ক্রাইবারে পাঠাবে।

আউটপুট:

2
4

2. take()

take() অপারেটরটি Observable স্ট্রিম থেকে শুধুমাত্র প্রথম Nটি মান গ্রহণ করে এবং এরপর স্ট্রিমটি সম্পূর্ণ করে দেয়। এটি সাধারণত সীমিত সংখ্যক ইভেন্ট বা মান প্রাপ্তি প্রয়োজন হলে ব্যবহার হয়।

বৈশিষ্ট্য:

  • প্রথম নির্দিষ্ট সংখ্যক মান গ্রহণ করে।
  • একবার যত সংখ্যক মান গ্রহণ করা হয়ে গেলে, Observable complete হয়ে যায়।

উদাহরণ:

import { of } from 'rxjs';
import { take } from 'rxjs/operators';

const source = of(1, 2, 3, 4, 5);

source.pipe(
  take(3) // প্রথম ৩টি মান গ্রহণ করবে
).subscribe(console.log);

এখানে, take(3) প্রথম ৩টি মান (১, ২, ৩) গ্রহণ করবে এবং তারপর Observable সম্পূর্ণ হয়ে যাবে।

আউটপুট:

1
2
3

3. takeWhile()

takeWhile() অপারেটরটি Observable স্ট্রিম থেকে মানগুলো গ্রহণ করতে ব্যবহার হয় যতক্ষণ না একটি নির্দিষ্ট শর্ত পূর্ণ হয়। একবার শর্তটি অমিল হলে, এটি Observable কে complete করে দেয়।

বৈশিষ্ট্য:

  • স্ট্রিম থেকে মান নেওয়া হয় যতক্ষণ না শর্ত পূর্ণ হয়।
  • শর্তটি মিথ্যা হলে, স্ট্রিমটি বন্ধ হয়ে যায়।

উদাহরণ:

import { from } from 'rxjs';
import { takeWhile } from 'rxjs/operators';

const numbers = from([1, 2, 3, 4, 5, 6, 7, 8]);

numbers.pipe(
  takeWhile(value => value < 5) // ৫ থেকে কম মানগুলো নেবে
).subscribe(console.log);

এখানে, takeWhile() প্রথম ৪টি মান (১, ২, ৩, ৪) নিবে কারণ শর্তটি মিথ্যা হওয়া পর্যন্ত তা চলতে থাকবে।

আউটপুট:

1
2
3
4

4. skip()

skip() অপারেটরটি Observable স্ট্রিম থেকে প্রথম Nটি মান উপেক্ষা (skip) করে এবং তারপর বাকি মানগুলো সাবস্ক্রাইবারকে পাঠায়। এটি মূলত প্রথম কিছু মান উপেক্ষা করতে ব্যবহৃত হয়।

বৈশিষ্ট্য:

  • প্রথম নির্দিষ্ট সংখ্যক মান উপেক্ষা করে, এবং পরবর্তী মানগুলো পাঠানো হয়।

উদাহরণ:

import { of } from 'rxjs';
import { skip } from 'rxjs/operators';

const source = of(1, 2, 3, 4, 5);

source.pipe(
  skip(2) // প্রথম ২টি মান উপেক্ষা করবে
).subscribe(console.log);

এখানে, skip(2) প্রথম ২টি মান (১, ২) উপেক্ষা করবে এবং তারপর বাকি মানগুলো (৩, ৪, ৫) সাবস্ক্রাইবারে পাঠাবে।

আউটপুট:

3
4
5

5. distinct()

distinct() অপারেটরটি Observable স্ট্রিমের মধ্যে থেকে শুধুমাত্র আলাদা বা ইউনিক মানগুলো নির্বাচন করে। এটি একাধিকবার আসা একে অপরকে একই মানগুলো ফিল্টার করে।

বৈশিষ্ট্য:

  • স্ট্রিমে যদি কোনো পুনরাবৃত্তি মান থাকে, তবে সেটা উপেক্ষা করা হয়।

উদাহরণ:

import { from } from 'rxjs';
import { distinct } from 'rxjs/operators';

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

numbers.pipe(
  distinct() // শুধুমাত্র ইউনিক মানগুলো নেবে
).subscribe(console.log);

এখানে, distinct() অপারেটরটি শুধু ইউনিক মানগুলো (১, ২, ৩, ৪, ৫) রাখবে এবং অন্যান্য পুনরাবৃত্তি মানগুলো ফিল্টার করবে।

আউটপুট:

1
2
3
4
5

সারাংশ

Filtering Operators RxJS-এ ডেটা স্ট্রিম থেকে নির্দিষ্ট মান বা ইভেন্টগুলো নির্বাচন (filter) করতে ব্যবহৃত হয়। এগুলির মাধ্যমে আপনি ডেটা স্ট্রিমে থাকা অপ্রয়োজনীয় মান বা ইভেন্টগুলো বাদ দিয়ে শুধুমাত্র প্রাসঙ্গিক ডেটা বা ইভেন্ট নিতে পারেন। RxJS-এ কিছু গুরুত্বপূর্ণ Filtering অপারেটর রয়েছে যেমন filter(), take(), takeWhile(), skip(), এবং distinct(), যা ডেটা স্ট্রিমের মানগুলোকে সহজে ফিল্টার করতে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...