/
description.ru.yml
48 lines (35 loc) · 2.56 KB
/
description.ru.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
---
name: Формирование строк в циклах
theory: |
Ещё одно использование циклов – формирование строк. Подобная задача нередко встречается в веб-программировании. Она сводится к обычной агрегации с применением интерполяции или конкатенации.
Есть одна задача, крайне популярная среди людей, проводящих собеседования, это переворот строки. Её можно решить множеством разных способов, но именно посимвольный перебор считается самым базовым. Пример работы этой функции:
```javascript
reverse('Hexlet'); // telxeH
```
Общая идея переворота состоит в следующем: нужно брать символы по очереди с начала строки и соединять их в обратном порядке. Звучит довольно просто. Давайте проверим:
```javascript
const reverse = (str) => {
let i = 0;
// Нейтральный элемент для строк это пустая строка
let result = '';
while (i < str.length) {
// Соединяем в обратном порядке
result = `${str[i]}${result}`;
// То же самое через конкатенацию
// result = str[i] + result;
i = i + 1;
}
return result;
};
const name = 'Bran';
reverse(name); // 'narB'
// Проверка нейтрального элемента
reverse(''); // ''
```
https://replit.com/@hexlet/js-basics-iteration-over-strings
Единственный возможно сложный момент в этом коде – прочувствовать, как собирается сама строка. Так как каждый следующий символ прикрепляется к результирующей строке слева, то, в конечном итоге, строка оказывается перевернута.
instructions: |
Реализуйте функцию `even()`, которая возвращает новую строку, состоящую из чётных символов исходной строки.
tips:
- |
[Итерация](https://ru.wikipedia.org/wiki/Итерация_(программирование))