Lodash এর _.forEach() এবং _.map() দুটি অত্যন্ত জনপ্রিয় ফাংশন যা অ্যারে এবং অবজেক্টের উপরে লুপ চালানোর জন্য ব্যবহৃত হয়। যদিও JavaScript এর নিজস্ব forEach() এবং map() মেথড রয়েছে, Lodash এই মেথডগুলোর কিছু উন্নত ফিচার এবং ফাংশনালিটি প্রদান করে। এখানে _.forEach() এবং _.map() এর ব্যবহার বিশদভাবে আলোচনা করা হবে।
_.forEach() এর ব্যবহার
_.forEach() ফাংশনটি একটি অ্যারে বা অবজেক্টের প্রতিটি উপাদান বা প্রোপার্টির উপর একটি ফাংশন চালায়। এটি মূলত একটি "iteration" ফাংশন হিসেবে কাজ করে, যেখানে প্রতিটি উপাদানের উপর একটি নির্দিষ্ট কাজ করা হয়।
সাধারণ সিনট্যাক্স
_.forEach(collection, iteratee);
- collection: এটি হতে পারে একটি অ্যারে, অবজেক্ট, অথবা স্ট্রিং।
- iteratee: একটি ফাংশন, যা প্রতিটি উপাদানের জন্য কার্যকর হবে।
উদাহরণ ১: অ্যারে ব্যবহার
const _ = require('lodash');
let numbers = [1, 2, 3, 4, 5];
_.forEach(numbers, (number) => {
console.log(number * 2); // প্রতিটি উপাদানকে ২ দিয়ে গুণ করবে
});
আউটপুট:
2
4
6
8
10
উদাহরণ ২: অবজেক্ট ব্যবহার
const person = {
name: 'John',
age: 30,
city: 'New York'
};
_.forEach(person, (value, key) => {
console.log(`${key}: ${value}`);
});
আউটপুট:
name: John
age: 30
city: New York
_.forEach() ফাংশনটি অ্যারে বা অবজেক্টের প্রতিটি উপাদান বা প্রোপার্টির উপর নির্দিষ্ট ফাংশনটি কার্যকর করে এবং কিছু রিটার্ন করে না।
_.map() এর ব্যবহার
_.map() ফাংশনটি একটি অ্যারে বা অবজেক্টের উপর ম্যাপ অপারেশন চালায় এবং একটি নতুন অ্যারে রিটার্ন করে, যেখানে প্রত্যেকটি উপাদান একটি ফাংশন দ্বারা প্রসেস করা হয়।
সাধারণ সিনট্যাক্স
_.map(collection, iteratee);
- collection: এটি হতে পারে একটি অ্যারে বা অবজেক্ট।
- iteratee: একটি ফাংশন যা প্রতিটি উপাদানের জন্য কার্যকর হবে এবং নতুন মান প্রদান করবে।
উদাহরণ ১: অ্যারে ব্যবহার
const _ = require('lodash');
let numbers = [1, 2, 3, 4, 5];
let doubledNumbers = _.map(numbers, (number) => number * 2);
console.log(doubledNumbers); // [2, 4, 6, 8, 10]
আউটপুট:
[2, 4, 6, 8, 10]
_.map() ফাংশনটি একটি নতুন অ্যারে রিটার্ন করে, যেখানে প্রতিটি উপাদান iteratee ফাংশন দ্বারা প্রসেস করা হয়েছে।
উদাহরণ ২: অবজেক্ট ব্যবহার
const person = {
name: 'John',
age: 30,
city: 'New York'
};
let uppercasedPerson = _.map(person, (value) => value.toUpperCase());
console.log(uppercasedPerson); // ['JOHN', '30', 'NEW YORK']
আউটপুট:
['JOHN', '30', 'NEW YORK']
এখানে _.map() অবজেক্টের প্রতিটি ভ্যালুকে toUpperCase() ফাংশনের মাধ্যমে প্রসেস করেছে এবং একটি নতুন অ্যারে রিটার্ন করেছে।
_.forEach() এবং _.map() এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | _.forEach() | _.map() |
|---|---|---|
| রিটার্ন ভ্যালু | রিটার্ন কিছুই করে না, শুধুমাত্র পাশের ফাংশন চালায় | একটি নতুন অ্যারে রিটার্ন করে, যেখানে প্রতিটি উপাদান iteratee দ্বারা পরিবর্তিত হয় |
| ব্যবহারের উদ্দেশ্য | কেবল ইটারেশন বা প্রতিটি উপাদান/প্রোপার্টির উপর কাজ চালানো | নতুন অ্যারে তৈরি করা, যেখানে প্রত্যেকটি উপাদান পরিবর্তিত বা প্রসেস করা হয় |
| পারফরম্যান্স | তুলনামূলকভাবে দ্রুত, যদি শুধু ইটারেশন দরকার হয় | নতুন অ্যারে তৈরি করার জন্য কিছুটা ধীর হতে পারে |
উপসংহার
_.forEach()ফাংশনটি মূলত একটি "iteration" ফাংশন, যেখানে আপনি শুধুমাত্র একটি নির্দিষ্ট কাজ করবেন অ্যারে বা অবজেক্টের উপর, কিন্তু এটি কোনো নতুন মান রিটার্ন করে না।_.map()ফাংশনটি একটি নতুন অ্যারে তৈরি করে, যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট ফাংশনের মাধ্যমে পরিবর্তিত হয়। এটি যখন নতুন অ্যারে দরকার তখন ব্যবহার করা হয়।
এই দুটি ফাংশন Lodash লাইব্রেরির শক্তিশালী সরঞ্জাম, যা JavaScript ডেভেলপমেন্টে ডেটা প্রসেসিং এবং ম্যানিপুলেশনকে আরও সহজ এবং কার্যকরী করে তোলে।
Read more