--- id: 587d7dab367417b2b2512b6d title: Apply Functional Programming to Convert Strings to URL Slugs challengeType: 1 videoUrl: '' localeTitle: تطبيق برمجة وظيفية لتحويل السلاسل إلى Slug URL --- ## Description
غطت التحديات الأخيرة عدة عدد من صفيفات السلسلة والصفيف المفيدة التي تتبع مبادئ البرمجة الوظيفية. لقد تعلمنا أيضًا عن reduce ، وهي طريقة قوية تستخدم لتقليل المشكلات إلى نماذج أبسط. من متوسطات الحوسبة إلى الفرز ، يمكن تحقيق أي عملية صفيف بتطبيقها. أذكر أن map filter هي حالات خاصة من reduce . دعونا ندمج ما تعلمناه لحل مشكلة عملية. تحتوي العديد من مواقع إدارة المحتوى (CMS) على عناوين وظيفة تتم إضافتها إلى جزء من عنوان URL لأغراض بسيطة للإشارة المرجعية. على سبيل المثال ، إذا كتبت منشورًا متوسطًا بعنوان "Stop Using Reduce" ، فمن المحتمل أن يكون لعنوان URL شكل من أشكال سلسلة العنوان فيه ("... / stop-using-reduction"). ربما تكون قد لاحظت هذا بالفعل على موقع freeCodeCamp.
## Instructions
املأ وظيفة urlSlug بحيث يحول title سلسلة ويعيد الإصدار urlSlug لعنوان URL. يمكنك استخدام أي من الطرق المغطاة في هذا القسم ، ولا تستخدم replace . فيما يلي المتطلبات: الإدخال عبارة عن سلسلة تحتوي على مسافات وكلمات ذات عناوين مكتوبة. الإخراج عبارة عن سلسلة تحتوي على مسافات بين الكلمات التي تم استبدالها بواصلة ( - ) يجب أن يكون الإخراج جميع الأحرف ذات الأحجام المنخفضة. يجب ألا يحتوي الإخراج على أية مسافات
## Tests
```yml tests: - text: يجب ألا يتغير متغير globalTitle . testString: 'assert(globalTitle === "Winter Is Coming", "The globalTitle variable should not change.");' - text: يجب ألا تستخدم شفرتك طريقة replace لهذا التحدي. testString: 'assert(!code.match(/\.replace/g), "Your code should not use the replace method for this challenge.");' - text: يجب أن ترجع urlSlug("Winter Is Coming") "winter-is-coming" . testString: 'assert(urlSlug("Winter Is Coming") === "winter-is-coming", "urlSlug("Winter Is Coming") should return "winter-is-coming".");' - text: يجب أن ترجع urlSlug(" Winter Is Coming") "winter-is-coming" . testString: 'assert(urlSlug(" Winter Is Coming") === "winter-is-coming", "urlSlug(" Winter Is  Coming") should return "winter-is-coming".");' - text: urlSlug("A Mind Needs Books Like A Sword Needs A Whetstone") "a-mind-needs-books-like-a-sword-needs-a-whetstone" . testString: 'assert(urlSlug("A Mind Needs Books Like A Sword Needs A Whetstone") === "a-mind-needs-books-like-a-sword-needs-a-whetstone", "urlSlug("A Mind Needs Books Like A Sword Needs A Whetstone") should return "a-mind-needs-books-like-a-sword-needs-a-whetstone".");' - text: يجب أن ترجع urlSlug("Hold The Door") "hold-the-door" . testString: 'assert(urlSlug("Hold The Door") === "hold-the-door", "urlSlug("Hold The Door") should return "hold-the-door".");' ```
## Challenge Seed
```js // the global variable var globalTitle = "Winter Is Coming"; // Add your code below this line function urlSlug(title) { } // Add your code above this line var winterComing = urlSlug(globalTitle); // Should be "winter-is-coming" ```
## Solution
```js // solution required ```