Lodash এর method chaining প্যাটার্নটি একটি শক্তিশালী ফিচার যা আপনাকে একাধিক অপারেশন একসাথে যুক্ত (chain) করে কার্যকরী এবং দক্ষ ফলাফল তৈরি করতে সাহায্য করে। এই প্যাটার্নটির মাধ্যমে, আপনি একাধিক Lodash ফাংশনকে একটি একক expression এ সংযোগ করতে পারেন, যা কোডের readability এবং maintainability বৃদ্ধি করে।
Method chaining এর মাধ্যমে আপনি একাধিক ফাংশন একযোগে ব্যবহার করতে পারেন, এবং প্রতিটি ফাংশন ফলাফল হিসেবে পরবর্তী ফাংশনের input প্রদান করে। এতে কোডটি সহজ, সুন্দর এবং কার্যকরী হয়।
১. Chaining ব্যবহার করার পদ্ধতি
Lodash তে method chaining শুরু করতে, প্রথমে একটি _(value) কল করতে হয়, যাতে সেই value Lodash এর ফাংশনগুলোর মাধ্যমে প্রসেস হয়। Lodash ফাংশনগুলো তখন একের পর এক প্রয়োগ করা হয় এবং শেষে .value() ব্যবহার করে ফলাফল পাওয়া যায়।
সিনট্যাক্স:
_.chain(value)
.method1()
.method2()
.method3()
.value();
- value: এটি আপনার ইনপুট ডেটা (array, object, string, ইত্যাদি)।
- method1(), method2(), method3(): এই ফাংশনগুলো একে একে ইনপুট ডেটাতে প্রয়োগ করা হয়।
- .value(): এটি চেইনিং প্রক্রিয়া শেষ করে ফাইনাল ফলাফল প্রদান করে।
২. উদাহরণ: একাধিক অপারেশন চেইন করা
ধরা যাক, আপনার একটি অ্যারে আছে এবং আপনি সেই অ্যারের সমস্ত odd সংখ্যাগুলো বের করতে চান, তারপর তাদের দ্বিগুণ করতে চান এবং শেষে তাদের যোগফল বের করতে চান। এই প্রক্রিয়া একসাথে চেইনিং করার মাধ্যমে করা যাবে।
const _ = require('lodash');
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];
// চেইনিং ব্যবহার করে একাধিক অপারেশন করা
let result = _.chain(numbers)
.filter(n => n % 2 !== 0) // odd numbers বের করা
.map(n => n * 2) // প্রতিটি সংখ্যাকে দ্বিগুণ করা
.sum() // দ্বিগুণ করা সংখ্যাগুলোর যোগফল
.value();
console.log(result); // Output: 60 (1 + 3 + 5 + 7 + 9 -> [2, 6, 10, 14, 18] -> 60)
ব্যাখ্যা:
filter(): শুধুমাত্র odd সংখ্যাগুলো বের করেছে।map(): প্রতিটি odd সংখ্যাকে দ্বিগুণ করেছে।sum(): সমস্ত দ্বিগুণ করা সংখ্যাগুলোর যোগফল বের করেছে।value(): চেইনিং শেষে ফাইনাল ফলাফলটি প্রদান করেছে।
৩. উদাহরণ: অবজেক্টের প্রোপার্টি সমূহের উপর অপারেশন
ধরা যাক, আপনার একটি অবজেক্টের array আছে, যেখানে প্রতিটি অবজেক্টে name এবং age আছে। আপনি চাচ্ছেন তাদের বয়সের উপর কিছু পরিবর্তন করতে এবং নামের প্রথম অক্ষর বড় করতে।
const _ = require('lodash');
let people = [
{ name: 'john', age: 23 },
{ name: 'anna', age: 29 },
{ name: 'mike', age: 35 },
{ name: 'lucy', age: 21 }
];
// চেইনিং ব্যবহার করে অবজেক্ট ম্যানিপুলেট করা
let updatedPeople = _.chain(people)
.filter(person => person.age >= 25) // বয়স ২৫ বা তার বেশি
.map(person => ({ // নামের প্রথম অক্ষর বড় করা
name: _.capitalize(person.name),
age: person.age + 1 // বয়স এক বছর বাড়ানো
}))
.value();
console.log(updatedPeople);
আউটপুট:
[
{ name: 'Anna', age: 30 },
{ name: 'Mike', age: 36 }
]
ব্যাখ্যা:
filter(): প্রথমে বয়স ২৫ বা তার বেশি এমন ব্যক্তিদের বেছে নেওয়া হয়েছে।map(): পরবর্তী প্রক্রিয়ায়, নামের প্রথম অক্ষরকে বড় করা হয়েছে এবং বয়সে ১ বছর যোগ করা হয়েছে।value(): ফাইনাল ফলাফল হিসেবে নতুন array প্রদান করেছে।
৪. উদাহরণ: স্ট্রিং ম্যানিপুলেশন
ধরা যাক, আপনার একটি স্ট্রিং আছে এবং আপনি সেটির মধ্যে কিছু পরিবর্তন করতে চান, যেমন: স্ট্রিং থেকে extra spaces সরানো, সব অক্ষর lowercase করা এবং তারপরে একটি নির্দিষ্ট শব্দের মধ্যে পরিবর্তন করা।
const _ = require('lodash');
let str = ' Hello World ';
// চেইনিং ব্যবহার করে স্ট্রিং ম্যানিপুলেশন
let modifiedStr = _.chain(str)
.trim() // extra spaces সরানো
.toLower() // সব অক্ষর lowercase করা
.replace('world', 'lodash') // 'world' কে 'lodash' এ পরিবর্তন করা
.value();
console.log(modifiedStr); // Output: hello lodash
ব্যাখ্যা:
trim(): extra spaces সরানো।toLower(): সব অক্ষর lowercase করা।replace():worldশব্দটিlodashদিয়ে প্রতিস্থাপন করা।value(): চেইনিং শেষে ফলাফল প্রদান করা।
উপসংহার
Lodash এর method chaining প্যাটার্নটি অনেক শক্তিশালী এবং এটি কোডকে আরও পরিষ্কার এবং কার্যকরী করে তোলে। আপনি সহজেই একাধিক অপারেশন একসাথে চেইন করতে পারেন এবং একটি কার্যকরী ফলাফল পেতে পারেন। এর মাধ্যমে কোডের readability এবং maintainability অনেক বৃদ্ধি পায় এবং একাধিক ফাংশন একত্রে প্রয়োগ করার ফলে কোড আরও সংক্ষিপ্ত এবং দক্ষ হয়।
Read more