الدوال ذات الترتيب الأعلى مرحبًا بكم وفي هذا الدرس سنتحدث عن دوال JavaScript ذات الترتيب الأعلى higher-order functions والشيء الذي بني عليه هذا كله هي فكرة أن JavaScript يعامل الدوال ككائنات لذلك في بعض الأماكن، على سبيل المثال حيث اعتدت على استخدام المتغيرات يمكنك أيضًا استخدام الدوال مما يعني أنه يمكننا تمرير دالة كمعامل إلى آخر والحصول على دالة كقيمة إرجاع لذا فإن الدوال هي أعضاء من الدرجة الأولى في JavaScript لذلك يمكننا تخزينها في المتغيرات حتى لو أردنا ذلك لذا دوال ذات ترتيب أعلى إما تأخذ دالة كوسيطة أو تقوم بإرجاع دالة وهذه صفحة سنعمل معها وسنقوم بملء ذلك كما نمضي الخبر السار هو ربما فعلت القليل من هذا بالفعل على سبيل المثال دعنا نرى، لدي مجموعة من الأزرار الخاصة بي هنا funcAsArg لذا تعمل كوسيطة إذا كنت أريد إنشاء معالج حدث لذلك سأستخدم دالة on الخاصة ب jQuery والمعلمة التي يأخذها هي اسم الحدث event name وخمن ماذا، دالة لذلك يمكن أن يكون اسم دالة يكون موجود بالفعل يمكن أن يكون مجهول الذي أنشأناه يمكن أن تكون دالة السهم arrow مجهولة المصدر أيضًا إذا كنت قد فعلت ذلك من قبل وأعتقد أن لغة جافا سكريبت في مرحلة ما لقد فعلتها بطريقة ما خمن ذلك! أنت تستخدم بالفعل دوال ذات ترتيب أعلى، وليس سيئًا عند النقر، سنعرض شيئًا ما لـ HTML لا يوجد شيء عجيب في هذا الكود هنا ولكن أراد أن أشير نوعا ما إلى ما قد تستخدمه كثيرًا ولكن ربما لم تعرف أبدًا ما الذي كنت تستخدمه ومن أجل ماذا أو لماذا نجحت الآن، لنلقِ نظرة على دالة تُرجع دالة وكيف يمكننا هيكلة ذلك لنفترض أنني سأبدل الإشارات على رقم الآن ستكون هذه عملية سهلة نسبيًا للقيام بها بالطبع لكننا نقوم بإنشاء هذا المثال حتى نتمكن من إظهار دوال ذات ترتيب أعلى لذا ربما بدلاً من مجرد إرجاع متغير سنعيد دالة وسنأخذ هذه القيمة الأصلية ونفعل شيئًا مع ذلك نعم، يمكن أن تكون هذه دالة قائمة بذاتها، ولكن مرة أخرى نحن فقط نعرض الدالة هنا لذلك عندما أستدعي هذه الدالة، سأستعيد دالة أخرى إذن كيف نجعل هذا يعمل؟ حسنًا، سأقول مثل، لا تفرط في التفكير لقد اعتدنا على الدوال التي تُرجع متغيرًا ونقوم فقط بتخزين هذه البيانات في مكان ما حسنًا، هذه دالة والتي ستعيد دالة أخرى الفكرة هي أنه يمكننا فعل شيء بها لنفترض على سبيل المثال سنفعل طريقتين مختلفتين يمكننا استدعائهم هنا هناك إشارات التبديل ووسيطة الاتجاه كما هو مطلوب لذا سأخزن الدالة التي يتم إرجاعها في forMomAndDad وفي forTheBooks حتى الآن، ليس لدي أي شيء على الإطلاق حيث يحدث السحر عندما آخذ هذه المتغيرات وأقوم بتمريرها ما تحتاجه إذن هذه هي الدالة التي ترجعها تلك الدالة الداخلية يحتوي الإشعار على معلمة قيمة أصلية هذا ما أقوم بتمريره بالفعل في هذه المرحلة لاحظ الآن هنا، اتجاهي إيجابي for mom and dad اتركها على for the books لا يعني ذلك أننا نفعل أي شيء غير أمين نريد أن يظن mom & dad أننا بخير ماذا عن ذلك؟ لذلك دعونا نختبر هذه الدالة كقيمة معادة return value mom and dad see 500 المحاسبة ترى الشيء الحقيقي accounting sees -500 لا تكذب على المحاسبة، ليست فكرة جيدة ودعنا نتحقق هنا وسندخل شيئًا هناك نذهب ونعلم أن ذلك سابقًا كان يعمل أيضًا إذن لدينا دالة تأخذ قيمة الدالة التي ترجع دالة أخرى أن ينتهي بنا الأمر نستدعيها في وقت لاحق شيء آخر يمكننا القيام به هو استخدام دوال جافا سكريبت الموجودة بالفعل والتي هي أعلى ترتيب والمرشح filter هو واحد من هؤلاء ما سأفعله هو كتابة حرف أو أحرف هنا وسنجد أيًا من الخيارات في المربع التي تتطابق بالفعل هناك لذلك دعونا نقوم بإعداد هذا أولاً وسأخذ كل خيار من خياراتي في المربع وسأقوم بإنشاء مصفوفة المدينة ثم ادفع كل نص ذلك في مصفوفة المدينة التي سننظر إليها لاحقًا سيكون هذا هو المكان المناسب حيث نكتب الحرف أو الحروف ومن ثم ستبدو دالة المرشح filter بهذا الشكل إذن هذا مجرد مرشح وهو ترتيب أعلى لأنها تأخذ دالة كوسيطة في هذه الحالة، إنها دالة مجهولة نحن ننظر إلى تلك الكلمة لا أحتاج حقًا إلى وحدة التحكم التي تسجل هناك console.log لكننا سنرى ما إذا كانت الأحرف متطابقة لأنه إذا استعادنا قيمة أكبر من الصفر فسنعلم أنه تم العثور على تلك الأحرف في تلك السلسلة في مكان ما وبعد ذلك سنعرضها فقط على الصفحة لذلك نحن فقط نعرض عدد التطابقات الموجودة وإلحاقها بالصفحة الشيء المهم في هذا هو أنني أستخدم filter إنها دالة ذات ترتيب أعلى لأنه يأخذ هذه الدالة كوسيطة فلنقل ماذا عن الحرف A يبدو أنه يظهر في عدد قليل جدًا من هؤلاء ها نحن، لدينا ثماني تطابقات ماذا عن "at" كعبارة؟ فقط مطابقة واحدة جرب ذلك، مرة أخرى، فقط نتيجة واحدة مطابقة هناك إذاً لديك بعض الدوال التي يمكنك استخدامها للعمل مع المصفوفات filter كونها واحدة منهم والتي سوف تمر على كل عضو في المصفوفة وتعطي دالة معينة تخبرك ما إذا كان جزءًا من هذه الدالة المنطقية التي طلبت إلقاء نظرة عليها أولاً يمكننا أيضًا أن نفعل Reduce وهي دالة أخرى ذات ترتيب أعلى وسأحصل على الخيارات مرة أخرى مع هذا، ما سأفعله هو أخذ كل أطوال كل خيار في المربع و Reduce يأخذ دالة تعطيني نتيجة لذلك يتم تقليل هذه المصفوفة إلى قيمة واحدة ويمكنك أن تفعل ما تريده نوعًا ما سأقوم بالمرور في الإجمالي والحالي total, current وهذا سيكون مجرد حاصل جمع والذي سيعطيني طول جميع الحروف في المربع مرة أخرى، تأخذ Reduce دالة كوسيطة الثاني هو بالضبط ما هو الافتراضي عندما يبدأ لذا يجب أن أكون قادرًا على جمع كل هذه معًا ويبدو أنه ربما لدي عدد كبير جدًا من الأقواس هناك لذلك دعونا نصلح ذلك هناك نذهب إجمالي عدد الأحرف وجميع عناصر الخيار 78 يمكنك عدهم بنفسك وترى لكن أعتقد أنه يعمل في هذا الدرس نظرنا إلى مقدمة لاستخدام دوال ذات ترتيب أعلى في JavaScript وشكرا على المشاهدة في درسنا التالي، سنتحدث عن دوال JavaScript التي تسمى التكرارات والمولدات