diff --git a/modules/50-loops/28-build-strings/Makefile b/modules/50-loops/28-build-strings/Makefile deleted file mode 100644 index d0d0a48c..00000000 --- a/modules/50-loops/28-build-strings/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -test: - @ test.sh diff --git a/modules/50-loops/28-build-strings/description.es.yml b/modules/50-loops/28-build-strings/description.es.yml deleted file mode 100644 index a5851377..00000000 --- a/modules/50-loops/28-build-strings/description.es.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- - -name: Generación de cadenas en bucles -theory: | - - Otro uso de los bucles es la generación de cadenas. Este tipo de tarea es común en la programación web. Se reduce a una simple agregación utilizando interpolación o concatenación. - - Hay una tarea muy popular entre las personas que realizan entrevistas, que es invertir una cadena. Se puede resolver de muchas formas diferentes, pero el enfoque más básico es recorrer la cadena carácter por carácter. Aquí tienes un ejemplo de cómo funciona esta función: - - ```javascript - reverse('Hexlet'); // telxeH - ``` - - La idea general de la inversión es tomar los caracteres uno por uno desde el principio de la cadena y unirlos en orden inverso. Suena bastante simple. Veamos: - - ```javascript - const reverse = (str) => { - let i = 0; - // El elemento neutral para las cadenas es una cadena vacía - let result = ''; - while (i < str.length) { - // Unir en orden inverso - result = str[i] + result; - // Lo mismo, pero con concatenación - // result = str[i] + result; - i = i + 1; - } - - return result; - }; - - const name = 'Bran'; - reverse(name); // 'narB' - // Comprobación del elemento neutral - reverse(''); // '' - ``` - - - El único aspecto posiblemente complicado de este código es comprender cómo se construye la cadena. Dado que cada carácter siguiente se adjunta a la cadena resultante desde la izquierda, al final la cadena queda invertida. - -instructions: | - - Implementa la función `even()`, que devuelve una nueva cadena formada por los caracteres pares de la cadena original. - -tips: - - | - [Iteración](https://es.wikipedia.org/wiki/Iteraci%C3%B3n) diff --git a/modules/50-loops/28-build-strings/en/EXERCISE.md b/modules/50-loops/28-build-strings/en/EXERCISE.md deleted file mode 100644 index f00e44f9..00000000 --- a/modules/50-loops/28-build-strings/en/EXERCISE.md +++ /dev/null @@ -1,2 +0,0 @@ - -Write the function `even()` that returns a new string consisting of even characters from the original string diff --git a/modules/50-loops/28-build-strings/en/README.md b/modules/50-loops/28-build-strings/en/README.md deleted file mode 100644 index 72c1f729..00000000 --- a/modules/50-loops/28-build-strings/en/README.md +++ /dev/null @@ -1,34 +0,0 @@ - -Loops also allow you to generate strings. It's a common task for web development. It's merely basic aggregation using interpolation or concatenation. - -One especially popular task among interviewers is to do a string reversal. There are lots of ways to solve it, but the most basic is by iterating each character. Take a look at how this function works: - -```javascript -reverse('Hexlet'); // telxeH -``` - -The general idea of the reversal is that you take characters one by one from the beginning of the string and then connect them in reverse order. Sounds like a piece of cake. Now let's examine it: - -```javascript -const reverse = (str) => { - let i = 0; - // A neutral element in terms of strings is an empty string - let result = ''; - while (i < str.length) { - // Connect it in reverse order - result = str[i] + result; - // Same through concatenation - // result = str[i] + result; - i = i + 1; - } - - return result; -}; - -const name = 'Bran'; -reverse(name); // 'narB' -// Testing neutral element -reverse(''); // '' -``` - -Perhaps the only tricky part here is getting a feel of how the string itself is built. Since each next character is attached to the resulting string on the left, the string ends up reversed. diff --git a/modules/50-loops/28-build-strings/en/data.yml b/modules/50-loops/28-build-strings/en/data.yml deleted file mode 100644 index 19c795b0..00000000 --- a/modules/50-loops/28-build-strings/en/data.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -name: Building strings with loops -tips: [] diff --git a/modules/50-loops/28-build-strings/es/EXERCISE.md b/modules/50-loops/28-build-strings/es/EXERCISE.md deleted file mode 100644 index 0848c02a..00000000 --- a/modules/50-loops/28-build-strings/es/EXERCISE.md +++ /dev/null @@ -1,2 +0,0 @@ - -Implementa la función `even()`, que devuelve una nueva cadena formada por los caracteres pares de la cadena original. diff --git a/modules/50-loops/28-build-strings/es/README.md b/modules/50-loops/28-build-strings/es/README.md deleted file mode 100644 index afd322ad..00000000 --- a/modules/50-loops/28-build-strings/es/README.md +++ /dev/null @@ -1,34 +0,0 @@ - -Otro uso de los bucles es la generación de cadenas. Este tipo de tarea es común en la programación web. Se reduce a una simple agregación utilizando interpolación o concatenación. - -Hay una tarea muy popular entre las personas que realizan entrevistas, que es invertir una cadena. Se puede resolver de muchas formas diferentes, pero el enfoque más básico es recorrer la cadena carácter por carácter. Aquí tienes un ejemplo de cómo funciona esta función: - -```javascript -reverse('Hexlet'); // telxeH -``` - -La idea general de la inversión es tomar los caracteres uno por uno desde el principio de la cadena y unirlos en orden inverso. Suena bastante simple. Veamos: - -```javascript -const reverse = (str) => { - let i = 0; - // El elemento neutral para las cadenas es una cadena vacía - let result = ''; - while (i < str.length) { - // Unir en orden inverso - result = str[i] + result; - // Lo mismo, pero con concatenación - // result = str[i] + result; - i = i + 1; - } - - return result; -}; - -const name = 'Bran'; -reverse(name); // 'narB' -// Comprobación del elemento neutral -reverse(''); // '' -``` - -El único aspecto posiblemente complicado de este código es comprender cómo se construye la cadena. Dado que cada carácter siguiente se adjunta a la cadena resultante desde la izquierda, al final la cadena queda invertida. diff --git a/modules/50-loops/28-build-strings/es/data.yml b/modules/50-loops/28-build-strings/es/data.yml deleted file mode 100644 index 6f8f2078..00000000 --- a/modules/50-loops/28-build-strings/es/data.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -name: Generación de cadenas en bucles -tips: - - | - [Iteración](https://es.wikipedia.org/wiki/Iteraci%C3%B3n) diff --git a/modules/50-loops/28-build-strings/index.js b/modules/50-loops/28-build-strings/index.js deleted file mode 100644 index fcf3bed5..00000000 --- a/modules/50-loops/28-build-strings/index.js +++ /dev/null @@ -1,18 +0,0 @@ -/* eslint operator-assignment: 0 */ -// BEGIN -const getEvenChars = (str) => { - let i = 0; - let result = ''; - while (i < str.length) { - if (i % 2 !== 0) { - result = result + str[i]; - } - i = i + 1; - } - - return result; -}; - -// END - -export default getEvenChars; diff --git a/modules/50-loops/28-build-strings/ru/EXERCISE.md b/modules/50-loops/28-build-strings/ru/EXERCISE.md deleted file mode 100644 index c1fbeb9f..00000000 --- a/modules/50-loops/28-build-strings/ru/EXERCISE.md +++ /dev/null @@ -1,12 +0,0 @@ - -Реализуйте функцию `getEvenChars(text)`, принимает строку и возвращает новую, состоящую из чётных символов исходной строки. - -Функция должна вернуть строку с каждым вторым символом, если на входе пустая строка, то возвращается также пустая строка. Пример: - -```javascript -console.log(getEvenChars('Bran')); // => 'rn' -console.log(getEvenChars('')); // => '' -console.log(getEvenChars('Hexlet')); // => 'elt' -``` - -Символ считается вторым (четным) если он идет вторым в строке, а не по индексу. diff --git a/modules/50-loops/28-build-strings/ru/README.md b/modules/50-loops/28-build-strings/ru/README.md deleted file mode 100644 index 9f57f270..00000000 --- a/modules/50-loops/28-build-strings/ru/README.md +++ /dev/null @@ -1,32 +0,0 @@ - -Ещё одно использование циклов – формирование строк. Подобная задача нередко встречается в веб-программировании. Она сводится к обычной агрегации с применением интерполяции или конкатенации. - -Есть одна задача, крайне популярная среди людей, проводящих собеседования, это переворот строки. Её можно решить множеством разных способов, но именно посимвольный перебор считается самым базовым. Пример работы этой функции: - -```javascript -reverse('Hexlet'); // telxeH -``` - -Общая идея переворота состоит в следующем: нужно брать символы по очереди с начала строки и соединять их в обратном порядке. Звучит довольно просто. Давайте проверим: - -```javascript -const reverse = (str) => { - let i = 0; - // Нейтральный элемент для строк это пустая строка - let result = ''; - while (i < str.length) { - // Соединяем в обратном порядке - result = str[i] + result; - i = i + 1; - } - - return result; -}; - -const name = 'Bran'; -reverse(name); // 'narB' -// Проверка нейтрального элемента -reverse(''); // '' -``` - -Единственный возможно сложный момент в этом коде – прочувствовать, как собирается сама строка. Так как каждый следующий символ прикрепляется к результирующей строке слева, то, в конечном итоге, строка оказывается перевернута. diff --git a/modules/50-loops/28-build-strings/ru/data.yml b/modules/50-loops/28-build-strings/ru/data.yml deleted file mode 100644 index 7781ba3a..00000000 --- a/modules/50-loops/28-build-strings/ru/data.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -name: Формирование строк в циклах -tips: - - | - [Итерация](https://ru.wikipedia.org/wiki/Итерация_(программирование)) diff --git a/modules/50-loops/28-build-strings/test.js b/modules/50-loops/28-build-strings/test.js deleted file mode 100644 index 071742cd..00000000 --- a/modules/50-loops/28-build-strings/test.js +++ /dev/null @@ -1,8 +0,0 @@ -import { expect, test } from 'vitest'; -import f from './index.js'; - -test('test', () => { - expect(f('Bran')).toEqual('rn'); - expect(f('')).toEqual(''); - expect(f('Hexlet')).toEqual('elt'); -});