Рядок тексту (англ. string) - це тип даних у 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 незмінні. Тому будь-яка «модифікація», наприклад, за допомогою деяких із наведених вище методів, завжди створює новий рядок тексту.
У місті відкрився новий клуб поезії, і ми розмірковуємо, чи не відвідати його. Оскільки в минулому траплялися інциденти, у клубу дуже специфічні правила входу, які нам потрібно опанувати, перш ніж намагатися потрапити всередину.
У клубі поезії є двоє дверей: передні та задні, і кожні з них охороняються. Щоб потрапити всередину, нам потрібно зʼясувати пароль дня.
Пароль завжди ґрунтується на вірші, і його можна вивести у два кроки.
Подробиці процесу залежать від того, до яких дверей ми намагаємося увійти.
Щоб визначити літери для пароля до передніх дверей, нам потрібно відповідати першою літерою рядка вірша, який декламує нам охоронець.
Щоб пароль виходив гарним, члени клубу поезії люблять використовувати акровірші. Це означає, що перша літера кожного речення утворює слово. Ось приклад від одного з їхніх улюблених авторів, Майкла Локвуда.
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, яка приймає рядок тексту (англ. string) (обʼєднані літери, які ми знайшли в завданні 1) і повертає його правильно написаним з великої літери.
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, яка приймає рядок тексту (обʼєднані літери, які ми знайшли в завданні 3) і повертає ввічливу версію пароля, написаного з великої літери.
backDoorPassword('horse');
// => "Horse, please"
Зареєструйтеся на Exercism, щоб вивчати й опановувати JavaScript, а також 37 концепцій159 вправ та справжнє наставництво від людей, і все це безкоштовно.