Skip to content

Commit 9b32f0c

Browse files
committed
[LES-8.5/st-compl] split-join-methods
Practice with "split()" and "join()" methods. Using "reverse()". Worth noting: - alternative solution in task 2 and 3. FS-dev: B-3 / JS basic
1 parent 642d785 commit 9b32f0c

File tree

1 file changed

+88
-0
lines changed
  • full-stack-dev/3-js-basic/8-arrays/8-5-split-join-methods

1 file changed

+88
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
// Задание 1:
2+
// Напишите функцию createUrlSlug(title), которая принимает строку (например, заголовок статьи) и возвращает "URL-дружелюбную" версию этой строки.
3+
// Требования:
4+
// 1. Все буквы должны быть в нижнем регистре.
5+
// 2. Пробелы должны быть заменены на дефисы (-).
6+
// Пример:
7+
// createUrlSlug("Hello World, this is a great article")
8+
// Должно вернуть: "hello-world,-this-is-a-great-article"
9+
10+
function createUrlSlug(title) {
11+
return title.toLowerCase().split(' ').join('-');
12+
}
13+
14+
console.log(createUrlSlug('Hello World, this is a great article')); // "hello-world,-this-is-a-great-article"
15+
16+
// Задание 2:
17+
// Напишите функцию reverseWords(sentence), которая принимает предложение и переворачивает каждое слово в нем, но сохраняет исходный порядок слов.
18+
// Требования:
19+
// 1. Разделить предложение на слова.
20+
// 2. Каждое слово перевернуть задом наперед.
21+
// 3. Собрать перевернутые слова обратно в предложение с сохранением пробелов.
22+
// Пример:
23+
// reverseWords("Welcome to the jungle")
24+
// Должно вернуть: "emocleW ot eht elgnuj"
25+
26+
function reverseWords(sentence) {
27+
const sentenceArr = sentence.split(' '); // [ 'Welcome', 'to', 'the', 'jungle' ]
28+
const reverseSentenceArr = [];
29+
30+
for (const world of sentenceArr) {
31+
reverseSentenceArr.push(world.split('').reverse().join('')); // [ 'emocleW', 'ot', 'eht', 'elgnuj' ]
32+
}
33+
34+
return reverseSentenceArr.join(' ');
35+
}
36+
37+
console.log(reverseWords('Welcome to the jungle')); // "emocleW ot eht elgnuj"
38+
39+
// ?? альтернативное решение
40+
function reverseWords(sentence) {
41+
return sentence
42+
.split(' ')
43+
.map((word) => word.split('').reverse().join(''))
44+
.join(' ');
45+
}
46+
47+
// Задание 3:
48+
// Напишите функцию isPalindrome(str), которая проверяет, является ли переданная строка палиндромом.
49+
// Требования:
50+
// 1. Функция должна возвращать true или false.
51+
// 2. Палиндром — это слово или фраза, которая читается одинаково в обоих направлениях (например, "топот").
52+
// 3. Проверка должна быть нечувствительна к регистру букв и пробелам.
53+
// Пример:
54+
// isPalindrome("А роза упала на лапу Азора") → true
55+
// isPalindrome("Racecar") → true
56+
// isPalindrome("Hello world") → false
57+
58+
function isPalindrome(str) {
59+
const lowerStr = str.toLowerCase();
60+
const defaultStr = lowerStr.split(' ').join('');
61+
let reverseStr;
62+
const reverseStrArr = lowerStr.split(' ').reverse();
63+
const newReverseStrArr = [];
64+
65+
for (const world of reverseStrArr) {
66+
newReverseStrArr.push(world.split('').reverse().join(''));
67+
}
68+
69+
reverseStr = newReverseStrArr.join('');
70+
71+
return defaultStr === reverseStr;
72+
}
73+
74+
console.log(isPalindrome('А роза упала на лапу Азора')); // true
75+
console.log(isPalindrome('Racecar')); // true
76+
console.log(isPalindrome('Hello world')); // false
77+
78+
// ?? альтернативное решение
79+
function isPalindrome(str) {
80+
// 1. Очищаем строку от пробелов и приводим к нижнему регистру
81+
const cleanStr = str.toLowerCase().split(' ').join('');
82+
83+
// 2. Создаем перевернутую копию очищенной строки
84+
const reversedStr = cleanStr.split('').reverse().join('');
85+
86+
// 3. Сравниваем их
87+
return cleanStr === reversedStr;
88+
}

0 commit comments

Comments
 (0)