لا يُطلب من المطور فقط إكمال المهام ، ولكن من الضروري أيضًا القيام بالمهام بطريقة أكثر كفاءة. هناك العديد من المكتبات المتاحة في JavaScript اليوم والتي تجعل العمل مع المتغيرات أسهل للمطورين. سوف نتعلم كيفية الاستفادة من وظائف مكتبة Lodash الأكثر شيوعًا في هذا البرنامج التعليمي.
إذا لم تكن قد جربت Lodash بعد ، فقد حان الوقت الآن. Lodash هي حزمة أدوات JavaScript معاصرة تعمل على تبسيط العمل مع المصفوفات والأعداد الصحيحة والكائنات والنصوص وأنواع البيانات الأخرى بشكل أسهل.
سيساعدك في التعامل مع أنواع مختلفة من الكائنات وسيوفر لك الوقت من خلال التخلص من الحاجة إلى ترميز الطرق العامة. سيكون الرمز الخاص بك أنظف مع عدد أقل من الأسطر وسيعمل في جميع المتصفحات. إذا لم تكن تستخدمه بالفعل ، فعليك التفكير فيه بعناية.
إن عدم اعتماد Lodash يمثل خسارة فادحة لقواعد أكواد JavaScript الخاصة بنا. إنه حل خالٍ من الأخطاء وأنيق للتحديات المشتركة التي نواجهها في العمل ، واستخدامه سيجعل الكود الخاص بنا أكثر قابلية للقراءة والتحكم.
دعنا نتعمق في بعض وظائف Lodash الأكثر شيوعًا (أو لا!) واكتشف مدى فائدة هذه المكتبة وجمالها.
1. _
لن يتم إرجاع جميع القيم المكررة مع هذه القيمة. نظرًا لأنه مخصص للصفائف المصنفة فقط ، يتم استخدامه بشكل أساسي لأسباب تتعلق بالسرعة. هذا مفيد فقط إذا كنت تتعامل مع مصفوفة كبيرة. إذا كنت ترغب في تحسين السرعة ، فقم بفرز المصفوفة الخاصة بك واستخدم الطرق التي تعمل بشكل أفضل مع المصفوفات المصنفة.
لدى لوداش عدد من الوظائف الأخرى المشابهة لهذا. يمكنك إلقاء نظرة على .sortedIndex ، .sortedIndexBy ، .sortedIndexOf ، .sortedLastIndex ، .sortedLastIndexBy ، .sortedLastIndexOf ، .sortedUniq ، .sortedUniqBy ، .sortedUniqBy ، .sortedUniqByqBy.
2. _. تقليل
_.reduce يشبه وظيفة التصفية. الاختلاف الوحيد هو أن لديك خيار تحديد شكل الكائن الذي تم إرجاعه. من الطبيعي ، إذا كنت لا تفهم ما أقوله ؛ هناك مثال على ذلك.
من حيث الجوهر ، نعيد كائنًا جديدًا يحتوي على مستخدمين مصنفين حسب العمر ، ولكن فقط لمن تتراوح أعمارهم بين 18 و 59 عامًا. تعد وظيفة مساعد Lodash واحدة من أكثر الوظائف شيوعًا. تم تضمينه أيضًا في ES6. أود أيضًا أن أشير إلى خطأين نموذجيين: تذكر إعادة النتيجة في ختام الوظيفة ، وتوفير القيمة الافتراضية للنتيجة كمعامل ثالث (هنا).
3. _.Gget و ._set
بالنسبة إلى هذا ، سأخدعك إلى حد ما من خلال إظهار وظيفتين تؤديان نفس الشيء تقريبًا. تقوم _.get بإرجاع قيمة خاصية من كائن ، و _.set ، حسناً ، لقد خمنت ذلك ، قم بتعيين خاصية ذات قيمة. لا يوجد شيء فريد ، باستثناء أنه يمكنك الوصول إلى خاصية من خلال مسارها.
دعونا ننظر على سبيل المثال.
إذا لم يكن المسار موجودًا أثناء استدعاء _.set ، فسيتم إنشاؤه. لن يكون هناك المزيد من أخطاء "لا يمكن تعيين خاصية" عناصر "غير محددة". إذا كان المسار غير موجود ، فسيرجع _.get غير محدد بدلاً من الخطأ. إذا تحول المسار إلى غير معرف ، فيمكنك أيضًا توفير قيمة افتراضية (معلمة ثالثة).
4. _. البحث
بدلاً من المرور عبر مصفوفة للعثور على كائن واحد ، يمكننا استخدام _.find. هذا جيد ، لكنه ليس الشيء الوحيد الذي يمكن أن يفعله البحث. باستخدام سطر واحد من التعليمات البرمجية ، يمكنك أيضًا اكتشاف كائن من خلال استخدام العديد من الخصائص. تحقق من ذلك!
5._.keyBy
واحدة من المفضلة هي _.keyBy. إنه مفيد جدًا عند محاولة الحصول على كائن بسمة معينة. افترض أن لدينا 100 إدخال مدونة ونريد الحصول على المدونة بالمعرف "34abc". كيف سنفعلها؟ دعونا نرى ما سيحدث! يمكن أن تساعدك هذه الطريقة في ترتيب مجموعة كائن إذا قدمها الخادم كمصفوفة. يمكن أيضًا استخدام الدالة كوسيطة ثانية.
6. _. للجميع
ستعمل هذه الطريقة على التكرار عبر مصفوفة من الكائنات واحدًا تلو الآخر ، مما يتيح لك القيام بأي منطق تريده. في هذا المثال الأول ، سأقوم بتكرار قائمة كائنات المستخدم ، ودمج الأسماء الأولى والأخيرة لإنشاء خاصية جديدة تسمى fullName.
لكل من هذه المعلمات اثنين. المصفوفة التي نقوم بالتكرار عليها هي المعلمة الأولى. الوسيطة الثانية هي دالة مكررة ، حيث يكون المعامل الأول هو مرجع العنصر الفردي والثاني هو فهرس التكرار الحالي.
7. _ الخريطة
تتكرر الخريطة ، مثل forEach ، عبر مصفوفة من القيم. من ناحية أخرى ، تقوم وظيفة الخريطة بإرجاع مجموعة جديدة من القيم التي توفرها الدالة التكرار. نحن نستخدم نفس مجموعة المستخدمين كما في مثال forEach هنا. قد نستخدم _.map لإنشاء متغير جديد يحتوي على مصفوفة مسطحة من جميع أسماء المستخدمين الكاملة.
8. _الفرق
ستنتج دالة الفرق مصفوفة جديدة من القيم تختلف بين المصفوفتين الأولى والثانية. من الضروري ملاحظة أن مواقع الحجج تؤثر على النتائج.
9._.احصل
يمكن أن تساعدنا الوظيفة _.get () في تحديد موقع عنصر داخل كائن. يمكننا تعيين قيمة افتراضية لوظيفة _.get () لإرجاعها إذا لم يتم العثور على عنصر في المسار المزود. تأخذ الدالة _.get () ثلاثة معاملات ، أولها هو الكائن الذي نرغب في الحصول على عنصر منه. الطريق هو الثاني. القيمة الثالثة هي القيمة الافتراضية التي نريد إرجاعها إذا تعذر تحديد موقع العنصر.
10. _. البحث
قد تبدو الدالة _find () مطابقة لطريقة _.get (). الدالة _.find () ، مثل طريقة _.get () ، تقبل ثلاث معاملات. ومع ذلك ، على عكس طريقة _.get () ، يمكن أن تكون الوسيطة الأولى مصفوفة أو كائنًا. تحدد الوسيطة الثانية الوظيفة التي سيتم استدعاؤها في كل تكرار. المدخل الثالث هو فهرس بداية المجموعة. لأن الدالة _.find () تتكرر فوق كل عنصر في مجموعة.
11._.groupBy
قم بإنشاء كائن مسمى بواسطة نتيجة دالة (أو اسم خاصية محدد عشوائيًا) ، بحيث تكون كل قيمة مصفوفة من الكائنات بنفس المفتاح.
12._.مجموعة
الطريقة _.set () هي معكوس الطريقة _.get (). سيغير قيمة العنصر في مسار معين. الكائن أو المصفوفة هو المعلمة الأولى ، والمسار هو الثاني ، والقيمة التي تريد تعيينها هي الثالثة.
13. _. دمج
يعمل بشكل مشابه لـ Object. assign ، إلا أنه يتكرر في عمق البنية الأساسية لتحديث الكائنات الأعمق بدلاً من استبدالها.
14. ديبر
هذا مثال مباشر إلى حد ما. تتم إزالة كافة "علامات التشكيل المجمعة". وبالتالي "é" تصبح "e". عندما يكون هناك تدويل وتوطين ، فمن الممارسات الجيدة إزالة حواف النص لوظائف البحث.
15._.الرفض
هذه واحدة من أكثر استراتيجيات Lodash فاعلية. قد يكون من الصعب أيضًا فهم ما يفعله ومتى يجب استخدامه. تقوم طريقة _.debounce () بإرجاع دالة. ستؤخر وظيفة طريقة _.debounce () الاستدعاء حتى يمر عدد محدد من المللي ثانية منذ آخر استدعاء للوظيفة.
وفي الختام
يعد Lodash امتدادًا قويًا للغة JavaScript. مع الحد الأدنى من الجهد ، يمكن للمرء بناء كود موجز وفعال. لوداش هو أيضًا معياري تمامًا. على الرغم من أن بعض وظائفها قد يتم إهمالها في النهاية ، أعتقد أنها ستظل تقدم العديد من الفوائد للمطورين بينما تقود أيضًا تطور لغة JS.
آمل أن تساعدك قدرات Lodash القليلة هذه في معرفة مدى قوة Lodash عند العمل مع المصفوفات والعناصر والمجموعات. يمكنك زيارة توثيق لاستكشاف عدد كبير من الخيارات الأخرى التي يقدمها.
اترك تعليق