filter(), first(), last() এর ব্যবহার

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

273

RxJS (Reactive Extensions for JavaScript) অনেক শক্তিশালী অপারেটর সরবরাহ করে, যা অ্যাসিঙ্ক্রোনাস ডেটা বা স্ট্রিমের উপর বিভিন্ন ধরনের কার্যক্রম পরিচালনা করতে সহায়ক। এর মধ্যে filter(), first(), এবং last() অপারেটরগুলো খুবই গুরুত্বপূর্ণ, যেগুলি ডেটার স্ট্রিম থেকে নির্দিষ্ট উপাদানগুলো নির্বাচন বা গ্রহণ করতে ব্যবহৃত হয়। এই অপারেটরগুলোর মাধ্যমে আপনি ডেটাকে আরও সহজভাবে প্রক্রিয়া এবং ফিল্টার করতে পারবেন।


1. filter()

filter() অপারেটরটি RxJS-এ ব্যবহৃত হয় ডেটা স্ট্রিমে ফিল্টারিং অপারেশন করার জন্য। এটি একটি predicate function গ্রহণ করে যা একটি ভ্যালু পরীক্ষা করে এবং true/false রিটার্ন করে। যদি প্রেডিকেট ফাংশনটি true রিটার্ন করে, তবে সেই ভ্যালুটি পরবর্তী সাবস্ক্রাইবারের কাছে পৌঁছাবে।

উদাহরণ:

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

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

const filteredNumbers = numbers.pipe(
  filter(x => x % 2 === 0) // শুধুমাত্র ইভেন নাম্বার ফিল্টার করবে
);

filteredNumbers.subscribe(x => console.log(x)); // Output: 2, 4, 6

এখানে, filter() অপারেটরটি কেবলমাত্র even numbers (যেমন 2, 4, 6) সাবস্ক্রাইবারের কাছে পাঠাবে, কারণ প্রেডিকেট ফাংশনটি x % 2 === 0 ব্যবহার করে শুধু সেগুলোই নির্বাচন করছে।


2. first()

first() অপারেটরটি স্ট্রিমের প্রথম মানটি নির্বাচিত করে এবং তারপরে complete() কল করে। এটি সাধারণত তখন ব্যবহার করা হয় যখন আপনি প্রথম মানটি পাওয়ার পর আর কোনো মানের প্রয়োজন হয় না।

উদাহরণ:

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

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

const firstNumber = numbers.pipe(
  first() // প্রথম মান নির্বাচন করবে
);

firstNumber.subscribe(x => console.log(x)); // Output: 1

এখানে, first() শুধুমাত্র প্রথম মান 1 রিটার্ন করবে এবং সাবস্ক্রিপশন শেষ হবে। এটি ঐ সময়ের পর আর কোনো মান পাঠাবে না।

first() এর একটি অতিরিক্ত ব্যবহার:

আপনি যদি নির্দিষ্ট কোনো শর্তে প্রথম মান চয়ন করতে চান, তাহলে একটি predicate function প্রদান করতে পারেন।

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

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

const firstEven = numbers.pipe(
  first(x => x % 2 === 0) // প্রথম even number নির্বাচন করবে
);

firstEven.subscribe(x => console.log(x)); // Output: 2

এখানে, first() অপারেটরটি প্রথম even number 2 নির্বাচন করবে এবং প্রক্রিয়া শেষ হবে।


3. last()

last() অপারেটরটি স্ট্রিমের সর্বশেষ মানটি নির্বাচন করে এবং complete() কল করে। এটি যখন প্রয়োজন হয়, যেমন আপনি শুধু ডেটার শেষ অংশ দেখতে চান, তখন ব্যবহার করা হয়।

উদাহরণ:

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

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

const lastNumber = numbers.pipe(
  last() // শেষ মান নির্বাচন করবে
);

lastNumber.subscribe(x => console.log(x)); // Output: 6

এখানে, last() শুধুমাত্র শেষ মান 6 রিটার্ন করবে এবং সাবস্ক্রিপশন শেষ হয়ে যাবে।

last() এর একটি অতিরিক্ত ব্যবহার:

আপনি যদি একটি নির্দিষ্ট শর্তের ভিত্তিতে শেষ মান নির্বাচন করতে চান, তবে একটি predicate function প্রদান করতে পারেন।

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

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

const lastEven = numbers.pipe(
  last(x => x % 2 === 0) // শেষ even number নির্বাচন করবে
);

lastEven.subscribe(x => console.log(x)); // Output: 6

এখানে, last() অপারেটরটি শেষ even number 6 নির্বাচন করবে।


সারাংশ

  • filter(): ডেটা স্ট্রিম থেকে একটি শর্তের উপর ভিত্তি করে উপাদান নির্বাচন করে। এটি একটি predicate function নেয়, যা true হলে ওই মানটি স্ট্রিমে পাঠানো হয়।
  • first(): স্ট্রিমের প্রথম মানটি নির্বাচন করে এবং তারপর সাবস্ক্রিপশন শেষ করে। আপনি একটি শর্তও প্রদান করতে পারেন, যাতে প্রথম সেই মানটি নির্বাচন করা হয় যা শর্ত পূরণ করে।
  • last(): স্ট্রিমের শেষ মানটি নির্বাচন করে। এটি সর্বশেষ মানটি সাবস্ক্রাইবারকে প্রদান করে, এবং আপনি একটি শর্তের ভিত্তিতে শেষ মান নির্বাচন করতে পারেন।

এই তিনটি অপারেটরের মাধ্যমে আপনি RxJS-এ খুব সহজে ডেটার স্ট্রিমে ফিল্টারিং, প্রথম বা শেষ মান নির্বাচন করতে পারেন, যা অনেক ধরনের ডেটা প্রক্রিয়া এবং অ্যাসিঙ্ক্রোনাস অপারেশন সহজ করে দেয়।

Content added By
Promotion

Are you sure to start over?

Loading...