reduce
، وهي طريقة قوية تستخدم لتقليل المشكلات إلى نماذج أبسط. من متوسطات الحوسبة إلى الفرز ، يمكن تحقيق أي عملية صفيف بتطبيقها. أذكر أن map
filter
هي حالات خاصة من reduce
. دعونا ندمج ما تعلمناه لحل مشكلة عملية. تحتوي العديد من مواقع إدارة المحتوى (CMS) على عناوين وظيفة تتم إضافتها إلى جزء من عنوان URL لأغراض بسيطة للإشارة المرجعية. على سبيل المثال ، إذا كتبت منشورًا متوسطًا بعنوان "Stop Using Reduce" ، فمن المحتمل أن يكون لعنوان URL شكل من أشكال سلسلة العنوان فيه ("... / stop-using-reduction"). ربما تكون قد لاحظت هذا بالفعل على موقع freeCodeCamp. urlSlug
بحيث يحول title
سلسلة ويعيد الإصدار urlSlug
لعنوان URL. يمكنك استخدام أي من الطرق المغطاة في هذا القسم ، ولا تستخدم replace
. فيما يلي المتطلبات: الإدخال عبارة عن سلسلة تحتوي على مسافات وكلمات ذات عناوين مكتوبة. الإخراج عبارة عن سلسلة تحتوي على مسافات بين الكلمات التي تم استبدالها بواصلة ( -
) يجب أن يكون الإخراج جميع الأحرف ذات الأحجام المنخفضة. يجب ألا يحتوي الإخراج على أية مسافات 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"
.");'
```