Lodash Module
🔷 Lodash কি?
লডাশ (Lodash) একটি বাইরের মডিউল (external module)। এটি একটি জাভাস্ক্রিপ্ট লাইব্রেরি যা বিভিন্ন ইউটিলিটি ফাংশন প্রদান করে .
👉 এটা মূলত array, object, string, number, function ইত্যাদি নিয়ে কাজ করার জন্য অনেক ধরনের function দেয় — যেগুলো native JavaScript এ করতে অনেক সময় লাগে বা কোড জটিল হয়।
🔧 Installation:
npm install lodash
✅ Commonly Used Lodash Functions:
Category | Function | Description |
---|---|---|
Array | _.chunk() |
Array কে ছোট ছোট অংশে ভাগ করে |
Array | _.uniq() |
ডুপ্লিকেট রিমুভ করে |
Object | _.cloneDeep() |
Deep clone করে object এর |
Object | _.merge() |
দুইটা object merge করে |
Collection | _.filter() |
Array/Object থেকে filter করে |
Function | _.debounce() |
Delay করে function call |
String | _.capitalize() |
প্রথম অক্ষর capital করে |
Utility | _.isEmpty() |
চেক করে empty কিনা |
✨ উদাহরণ:
const _ = require('lodash');
let arr = [1, 2, 2, 3, 4, 4, 5];
console.log(_.uniq(arr)); // [1, 2, 3, 4, 5]
console.log(_.chunk(arr, 2)); // [[1,2],[2,3],[4,4],[5]]
let user = { name: 'Ali', details: { age: 22 } };
let clone = _.cloneDeep(user);
console.log(clone); // সম্পূর্ণ object কপি
💡 কেন ব্যবহার করব?
কোড clean, readable ও concise হয়
-
Common utility functions নিজে বানাতে হয় না
-
Bug কম হয়
-
Production-level অনেক বড় projects-এ widely used
📦 Alternatives:
Vanilla JS (ES6+)
-
Ramda
-
Underscore.js
✨ More Examples :
🔐 1. JWT Auth বা User Login এর সময়:
✅ _.isEmpty()
– Check করো যে ফর্ম ইনপুট খালি কিনা:
const _ = require('lodash');
if (_.isEmpty(req.body.username) || _.isEmpty(req.body.password)) {
return res.status(400).json({ message: "Username or password missing!" });
}
👥 2. User Object থেকে only প্রয়োজনীয় info রাখা (ডাটাবেজে Save করার আগে):
✅ _.pick()
– কিছু নির্দিষ্ট key retain করা:
let user = {
username: "Ali",
password: "secret",
role: "admin"
};
let filteredUser = _.pick(user, ['username', 'role']);
console.log(filteredUser); // { username: 'Ali', role: 'admin' }
📊 3. Multiple User Filtering:
✅ _.filter()
– অনেক user থেকে condition অনুযায়ী filter করা:
let users = [
{ name: "Ali", active: true },
{ name: "Hridoy", active: false }
];
let activeUsers = _.filter(users, { active: true });
console.log(activeUsers); // [{ name: "Ali", active: true }]
🧠 4. Debounce (Typing input delay করে server hit কমানো):
✅ _.debounce()
– Search box টাইম delay:
const debounceSearch = _.debounce(function (searchText) {
console.log("Searching for:", searchText);
}, 500);
debounceSearch("hello");
🔂 5. Clone বা Object Merge:
✅ _.merge()
বা _.cloneDeep()
:
let obj1 = { user: { name: "Ali" } };
let copy = _.cloneDeep(obj1);
let obj2 = { user: { age: 24 } };
let merged = _.merge(obj1, obj2);
console.log(merged); // { user: { name: 'Ali', age: 24 } }
✅ Suggestion:
তুমি যদি:
Authentication project করো
-
User info process করো
-
Data filtering বা transforming করো
তাহলে Lodash অনেক সময় বাঁচাবে এবং কোডকে clean রাখবে।