«رشته» نوع دادهی JavaScript برای ذخیرهی دادههای متنی است.
یک رشته را با قرار دادن متن داخل «گیومهی تک» یا «گیومهی جفت» میسازید. در Exercism از گیومهی تک استفاده میشود.
'Hello, World!'
"Hello, World!"
میتوان با یک رشته مانند فهرستی از «کاراکترها» رفتار کرد که اولین کاراکتر اندیس 0 دارد.
میتوانید با استفاده از «کروشه» و اندیس حرفی که میخواهید بردارید، به یک کاراکتر مشخص از رشته دسترسی پیدا کنید.
'cat'[1];
// => 'a'
میتوانید با دسترسی به ویژگی length تعداد کاراکترهای یک رشته را تعیین کنید.
'cat'.length;
// => 3
سادهترین راه برای به هم چسباندن رشتهها، استفاده از عملگر جمع + است.
'I like' + ' ' + 'cats.';
// => "I like cats."
رشتهها «متدهای کمکی» زیادی در اختیارتان میگذارند؛ برای دیدن فهرست کامل، مستندات MDN دربارهی متدهای رشته را ببینید. فهرست زیر چند متد کمکی پرکاربرد را نشان میدهد.
toUpperCase و toLowerCase: تبدیل همهی کاراکترها به حروف بزرگ یا کوچکtrim: حذف فاصلههای خالی از ابتدا و انتهای رشتهincludes، startsWith و endsWith: تعیین اینکه رشتهی دیگری بخشی از رشتهی دادهشده هست یا نهslice: جدا کردن بخشی از رشتهرشتهها در JavaScript تغییرناپذیرند. بنابراین یک «تغییر»، مثلاً به کمک برخی از متدهای بالا، همیشه بهجای تغییر رشتهی اصلی، یک رشتهی جدید میسازد.
یک باشگاه شعر تازه در شهر باز شده است و شما به فکر شرکت در آن هستید. چون در گذشته اتفاقهایی افتاده است، این باشگاه قانون ورود بسیار مشخصی دارد که باید پیش از تلاش برای ورود بر آن مسلط شوید.
باشگاه شعر دو در دارد، یکی در جلویی و یکی در پشتی، و هر دو نگهبان دارند. برای ورود، باید رمز آن روز را پیدا کنید.
رمز همیشه بر پایهی یک شعر است و با فرایندی دو مرحلهای به دست میآید.
جزئیات این فرایند به این بستگی دارد که میخواهید از کدام در وارد شوید.
برای تعیین حرفهای رمز در جلویی، باید با اولین حرف خطی از شعر که نگهبان برایتان میخواند پاسخ دهید.
اعضای باشگاه شعر برای اینکه رمز قشنگی به دست آید، شعرهای آکروستیک به کار میبرند. یعنی اولین حرف هر جمله یک کلمه میسازد. نمونهای از یکی از نویسندگان محبوبشان، Michael Lockwood:
Stands so high
Huge hooves too
Impatiently waits for
Reins and harness
Eager to leave
پس وقتی نگهبان Stands so high را میخواند، شما S پاسخ میدهید و وقتی نگهبان Huge hooves too را میخواند، H پاسخ میدهید.
تابع frontDoorResponse را پیادهسازی کنید که یک خط از شعر را به عنوان آرگومان میگیرد و اولین حرف آن خط را برمیگرداند.
frontDoorResponse('Stands so high');
// => "S"
حالا که همهی حرفهای درست را دارید، تنها کاری که برای به دست آوردن رمز در جلویی لازم است این است که کلمه را درست با حرف اول بزرگ بنویسید.
تابع frontDoorPassword را پیادهسازی کنید که یک رشته میگیرد (حرفهایی که در تکلیف ۱ کنار هم گذاشتید) و آن را با حرف اول بزرگ برمیگرداند.
frontDoorPassword('SHIRE');
// => "Shire"
frontDoorPassword('shire');
// => "Shire"
برای تعیین حرفهای رمز در پشتی، باید با آخرین حرف خطی از شعر که نگهبان برایتان میخواند پاسخ دهید.
اعضای باشگاه شعر واقعاً باهوشاند. شعری که پیشتر گفته شد، تلستیک هم هست؛ یعنی آخرین حرف هر جمله نیز یک کلمه میسازد:
Stands so high
Huge hooves too
Impatiently waits for
Reins and harness
Eager to leave
وقتی نگهبان Stands so high را میخواند، شما h پاسخ میدهید و وقتی نگهبان Huge hooves too را میخواند، o پاسخ میدهید.
دقت کنید که نگهبان گاهی وقفههای سبکی (به شکل فضای خالی) در ابتدا یا انتهای خط ایجاد میکند. برای به دست آوردن حرف درست، باید این وقفهها را نادیده بگیرید.
تابع backDoorResponse را پیادهسازی کنید که یک خط از شعر را به عنوان آرگومان میگیرد و آخرین حرف آن خط را که کاراکتر فضای خالی نیست برمیگرداند.
backDoorResponse('Stands so high');
// => "h"
backDoorResponse('Stands so high ');
// => "h"
برای ورود به باشگاه شعر از در پشتی، باید خیلی مؤدب باشید.
پس برای به دست آوردن رمز، این بار باید کلمه را با حرف اول بزرگ بنویسید و ', please' را به انتهایش اضافه کنید.
تابع backDoorPassword را پیادهسازی کنید که یک رشته میگیرد (حرفهایی که در تکلیف ۳ کنار هم گذاشتید) و نسخهی مؤدبانهی رمز با حرف اول بزرگ را برمیگرداند.
backDoorPassword('horse');
// => "Horse, please"
در Exercism ثبتنام کنید تا JavaScript را همراه با 37 مفهوم159 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.