Lodash لجافا سكريبت (Node.js): دليل كامل مع أمثلة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو Lodash ولماذا هو مطلوب؟

\n\n

Lodash هي واحدة من أشهر وأقوى مكتبات الأدوات المساعدة لجافا سكريبت. توفر مئات الدوال الجاهزة للعمل مع المصفوفات، الكائنات، السلاسل النصية، الأرقام والدوال. يحل Lodash العديد من المهام النموذجية التي يواجهها كل مطور: النسخ العميق للكائنات، دمج البيانات، الفرز، التصفية، التجميع وغيرها الكثير.

\n\n

الهدف الرئيسي لـ Lodash هو جعل الكود أكثر قابلية للقراءة، قابلية للتنبؤ وأداءً أفضل. بدلاً من كتابة حلقات وشروط متداخلة معقدة، تستخدم دالة واحدة موجزة. هذا مهم بشكل خاص في Node.js، حيث يعمل الكود غالبًا مع كميات كبيرة من البيانات والعمليات غير المتزامنة.

\n\n

على الرغم من أن جافا سكريبت الحديثة (ES6+) أضافت العديد من الطرق الأصلية (مثل Array.map()، Array.filter()، Object.assign())، إلا أن Lodash لا يزال ذا صلة لعدة أسباب:

\n
    \n
  • العمليات العميقة: الطرق الأصلية تعمل فقط على المستوى العلوي. Lodash قادر على العمل مع الهياكل المتداخلة (الاستنساخ العميق، الدمج العميق).
  • \n
  • الاستقرار وقابلية التنبؤ: يضمن Lodash سلوكًا متطابقًا في جميع البيئات (المتصفح، Node.js).
  • \n
  • سلاسل الاستدعاءات: إمكانية فريدة لربط الطرق في سلاسل لمعالجة البيانات المعقدة.
  • \n
  • التحسين: غالبًا ما يعمل Lodash بشكل أسرع من البدائل المكتوبة يدويًا، خاصة على المصفوفات الكبيرة.
  • \n
\n\n

تثبيت Lodash

\n\n

لتثبيت Lodash في مشروع Node.js، يتم استخدام مدير الحزم npm (Node Package Manager). تأكد من تثبيت Node.js و npm لديك.

\n\n

افتح الطرفية في المجلد الجذر لمشروعك وقم بتنفيذ الأمر:

\n\n
npm install lodash
\n\n

بعد التثبيت، سيظهر مجلد node_modules/lodash في مشروعك، وسيتم إضافة تبعية في ملف package.json. يمكنك الآن استيراد المكتبة في الكود الخاص بك.

\n\n

هناك طريقتان رئيسيتان للاستيراد:

\n\n
// استيراد المكتبة بأكملها (موصى به للبساطة)\nconst _ = require('lodash');\n\n// استيراد طرق فردية لتحسين حجم الحزمة\nconst cloneDeep = require('lodash/cloneDeep');\nconst merge = require('lodash/merge');\n
\n\n

في هذه المقالة، سنستخدم الطريقة الأولى (const _ = require('lodash'))، لأنها الأكثر وضوحًا للتعلم.

\n\n

بداية سريعة: المثال الأول مع Lodash

\n\n

لنكتب سكريبتًا بسيطًا يوضح القوة الأساسية لـ Lodash. سننشئ مصفوفة من الكائنات ونقوم بعدة عمليات: إيجاد القيم الفريدة، الفرز وتجميع البيانات.

\n\n
// quickstart.js\nconst _ = require('lodash');\n\n// البيانات الأصلية: قائمة المستخدمين\nconst users = [\n    { 'user': 'barney', 'age': 36, 'active': true },\n    { 'user': 'fred', 'age': 40, 'active': false },\n    { 'user': 'pebbles', 'age': 1, 'active': true },\n    { 'user': 'barney', 'age': 36, 'active': false } // مكرر\n];\n\n// 1. إزالة التكرارات حسب حقل 'user' (الاحتفاظ بأول ظهور)\nconst uniqueUsers = _.uniqBy(users, 'user');\nconsole.log('المستخدمون الفريدون:', uniqueUsers);\n\n// 2. التصفية: الاحتفاظ فقط بالمستخدمين النشطين\nconst activeUsers = _.filter(uniqueUsers, { 'active': true });\nconsole.log('المستخدمون النشطون:', activeUsers);\n\n// 3. الفرز حسب العمر (تصاعديًا)\nconst sortedUsers = _.sortBy(activeUsers, ['age']);\nconsole.log('المستخدمون النشطون بعد الفرز:', sortedUsers);\n\n// 4. التجميع حسب العمر\nconst groupedByAge = _.groupBy(users, 'age');\nconsole.log('المستخدمون مجمعون حسب العمر:', groupedByAge);\n
\n\n

قم بتشغيل هذا السكريبت باستخدام الأمر node quickstart.js. سترى كيف قام Lodash في بضعة أسطر من الكود بحل المهام التي تتطلب

توصيات