مسیرها
/
JavaScript
JavaScript
/
تمرین‌ها
/
سیاست درِ باشگاه شعر
سیاست درِ باشگاه شعر

سیاست درِ باشگاه شعر

تمرین یادگیری

مقدمه

«رشته» نوع داده‌ی 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 تغییرناپذیرند. بنابراین یک «تغییر»، مثلاً به کمک برخی از متدهای بالا، همیشه به‌جای تغییر رشته‌ی اصلی، یک رشته‌ی جدید می‌سازد.

دستورالعمل‌ها

یک باشگاه شعر تازه در شهر باز شده است و شما به فکر شرکت در آن هستید. چون در گذشته اتفاق‌هایی افتاده است، این باشگاه قانون ورود بسیار مشخصی دارد که باید پیش از تلاش برای ورود بر آن مسلط شوید.

باشگاه شعر دو در دارد، یکی در جلویی و یکی در پشتی، و هر دو نگهبان دارند. برای ورود، باید رمز آن روز را پیدا کنید.

رمز همیشه بر پایه‌ی یک شعر است و با فرایندی دو مرحله‌ای به دست می‌آید.

  1. نگهبان شعر را خط به خط می‌خواند و شما باید با حرف مناسب آن خط پاسخ دهید.
  2. سپس نگهبان همه‌ی حرف‌هایی را که پاسخ داده‌اید یک‌جا به شما می‌گوید و شما باید آن‌ها را با قالب مشخصی روی کاغذی بنویسید.

جزئیات این فرایند به این بستگی دارد که می‌خواهید از کدام در وارد شوید.

1. اولین حرف یک جمله را به دست بیاورید

برای تعیین حرف‌های رمز در جلویی، باید با اولین حرف خطی از شعر که نگهبان برایتان می‌خواند پاسخ دهید.

اعضای باشگاه شعر برای اینکه رمز قشنگی به دست آید، شعرهای آکروستیک به کار می‌برند. یعنی اولین حرف هر جمله یک کلمه می‌سازد. نمونه‌ای از یکی از نویسندگان محبوبشان، 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"

2. یک کلمه را با حرف اول بزرگ بنویسید

حالا که همه‌ی حرف‌های درست را دارید، تنها کاری که برای به دست آوردن رمز در جلویی لازم است این است که کلمه را درست با حرف اول بزرگ بنویسید.

تابع frontDoorPassword را پیاده‌سازی کنید که یک رشته می‌گیرد (حرف‌هایی که در تکلیف ۱ کنار هم گذاشتید) و آن را با حرف اول بزرگ برمی‌گرداند.

frontDoorPassword('SHIRE');
// => "Shire"

frontDoorPassword('shire');
// => "Shire"

3. آخرین حرف یک جمله را به دست بیاورید

برای تعیین حرف‌های رمز در پشتی، باید با آخرین حرف خطی از شعر که نگهبان برایتان می‌خواند پاسخ دهید.

اعضای باشگاه شعر واقعاً باهوش‌اند. شعری که پیش‌تر گفته شد، تلستیک هم هست؛ یعنی آخرین حرف هر جمله نیز یک کلمه می‌سازد:

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"

4. مؤدب باشید

برای ورود به باشگاه شعر از در پشتی، باید خیلی مؤدب باشید. پس برای به دست آوردن رمز، این بار باید کلمه را با حرف اول بزرگ بنویسید و ', please' را به انتهایش اضافه کنید.

تابع backDoorPassword را پیاده‌سازی کنید که یک رشته می‌گیرد (حرف‌هایی که در تکلیف ۳ کنار هم گذاشتید) و نسخه‌ی مؤدبانه‌ی رمز با حرف اول بزرگ را برمی‌گرداند.

backDoorPassword('horse');
// => "Horse, please"
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
JavaScript Exercism

آماده‌اید سیاست درِ باشگاه شعر را شروع کنید؟

در Exercism ثبت‌نام کنید تا JavaScript را همراه با 37 مفهوم159 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.