Skip to content

gis-expert/js-lessions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lessions

Репозиторий для реализации студентами различных утилит и задач:

Реализация строковых утилит:

Этап 1.

  1. isEqual function
  2. len function
  3. replace len funcion
  4. isNotEqual funcion
  5. isMore function
  6. isLess function
  7. isMoreOrEqual function
  8. isLessOrEqual function
  9. Отправляем свой код на код-ревью

Этап 2.

  1. reverse function

  2. repeat function

  3. substring function

  4. indexOf function

  5. includes function

    • Написать тесты которые проверяют требования к функции.
  6. remove function
    Описание задачи: Реализуйте функцию remove(text: string, charToRemove: string): string, которая принимает строку text и символ charToRemove, и возвращает новую строку, из которой удалены все вхождения символа charToRemove.
    Необходимо будет создать файлы remove.ts, remove.test.ts
    Написать тесты которые проверяют требования к функции.

  7. Отправляем свой код на код-ревью

Этап 3.

  1. trim function
  2. replace function
  3. pad function
  4. startsWith, endsWith function
  5. slice, endsWith function
  6. Отправляем свой код на код-ревью

Этап 4.

  1. charUtils function
  2. upperCase, lowerCase function
  3. invertCase function
    Описание задачи: Реализуйте функцию invertCase(text: string): string, которая принимает строку text и возвращает новую строку, в которой все буквы инвертированы: символы в верхнем регистре преобразованы в нижний, а в нижнем — в верхний.
    Написать тесты которые проверяют требования к функции.
  4. capitalize function
    Описание задачи: Реализуйте функцию capitalize(text: string): string, которая принимает строку text и возвращает новую строку, в которой первый символ преобразован в верхний регистр, а все остальные — в нижний регистр.
    Написать тесты которые проверяют требования к функции.
  5. Отправляем свой код на код-ревью

Этап 5.

Задание 1: Функция для перевода строки из camelCase в snake_case

Описание задачи:

  1. Реализуйте функцию camelToSnake(text: string): string, которая принимает строку в camelCase формате и переводит её в snake_case.
  2. Функционал должен быть покрытый тестами.

Задание 2: Функция для перевода строки из snake_case в camelCase

Описание задачи:

  1. Реализуйте функцию snakeToCamel(text: string): string, которая принимает строку в snake_case формате и переводит её в camelCase.
  2. Функционал должен быть покрытый тестами.

Задание 3: Функция для перевода строки из camelCase в kebab-case

Описание задачи:

  1. Реализуйте функцию camelToKebab(text: string): string, которая принимает строку в camelCase формате и переводит её в kebab-case.
  2. Функционал должен быть покрытый тестами.

Задание 4: Функция для перевода строки из kebab-case в camelCase

Описание задачи:

  1. Реализуйте функцию kebabToCamel(text: string): string, которая принимает строку в kebab-case формате и переводит её в camelCase.
  2. Функционал должен быть покрытый тестами.

Задание 5: Функция для перевода строки из snake_case в kebab-case

Описание задачи:

  1. Реализуйте функцию snakeToKebab(text: string): string, которая принимает строку в snake_case формате и переводит её в kebab-case.
  2. Функционал должен быть покрытый тестами.

Задание 6: Функция для перевода строки из kebab-case в snake_case

Описание задачи:

  1. Реализуйте функцию kebabToSnake(text: string): string, которая принимает строку в kebab-case формате и переводит её в snake_case.
  2. Функционал должен быть покрытый тестами.

Задание 7: Код-ревью

Этап 6.

Задание 1: Реализация функции генерации случайных строк на основе формата

Описание задачи:

Вам необходимо реализовать функцию random(format: string, delimiter = '-'): string, которая будет генерировать случайные строки на основе предоставленного формата. Формат строки задается с использованием специальных символов, каждый из которых определяет тип символа, который будет сгенерирован.

Специальные символы для генерации:

h — случайное шестнадцатеричное число (0-9, a-f). d — случайная десятичная цифра (0-9). z — случайная буква английского алфавита (a-z). Z - случайная буква английского алфавита в нижнем и врехнем регистре (a-z, A-Z). a — случайная буква английского алфавита или цифра (a-z, 0-9). Z - случайная буква английского алфавита в нижнем и врехнем регистре или цифра (a-z, A-Z, 0-9). 0-9 — генерирует случайное число в диапазоне от 0 до указанного числа. Аргументы функции:

format: string — строка, задающая формат генерации. Каждый символ в этой строке определяет тип данных, которые будут сгенерированы. delimiter: string — разделитель, который используется для разделения сегментов в строке формата (по умолчанию '-').

Функция должна возвращать:
Сгенерированную строку, которая соответствует заданному формату.

Функционал должен быть покрытый тестами. Перед началом реализации напишите тесты, а потом приступайте к реализации (test driven development) Примеры тестовых случаев:

random('h-d-d-d');             // 'a-5-3-8'
random('z_z_d', '_');          // 'k_p_7'
random('255.255.255.255', '.');// '237.084.102.178'
random('d-d-4-h');             // '3-8-2-c'
random('hdd-AA', ':');         // 'b32-Y8'
random('hh-hhhh-hhhh');        // 'c5-499f-9196'
random('dd.dddd.dddd', '.')    // '39.1231.3456'
random('3-34-4h-hhh')          // '0-34-41-bf5'
random('zzzz#ddd', '#')        // 'jafn#855'
random('2.2.4', '.')           // '2.1.4'

Задание 2: Функция для подсчёта количества слов в строке Цель: Реализовать функцию, которая принимает на вход строку и возвращает количество слов в этой строке.

Функция должна обладать следующими возможностями: Подсчёт общего количества слов:

  • Функция должна возвращать количество слов в переданной строке.
  • Слово определяется как последовательность символов, разделённых пробелами или знаками препинания (такими как запятые, точки, восклицательные знаки и т.д.).
  • Игнорирование лишних пробелов:
  • Если строка пустая или содержит только пробелы и знаки препинания, функция должна возвращать 0.

Требования: Входные данные должны быть строкового типа. Если функция получает некорректные входные данные (например, число или объект), она должна выбрасывать исключение с сообщением "Invalid input". Пример реализации:

Примеры использования:

console.log(countWords("Hello, world! How are you?")); // 5
console.log(countWords("  Hello   world  ")); // 2
console.log(countWords("")); // 0
console.log(countWords("...,,!!")); // 0

Убедитесь, что функция корректно считает количество слов в строках с разными видами знаков препинания. Убедитесь, что функция возвращает 0 для пустых строк или строк, содержащих только пробелы и знаки препинания. Напишите тесты для проверки работы функции с корректными и некорректными входными данными.

Задание 3: Функция для извлечения слова из текста по его порядковому номеру Описание задачи:

Реализуйте функцию getWordAtPosition(text: string, position: number): string, которая принимает строку text и порядковый номер position, и возвращает слово, находящееся на этой позиции в тексте. Позиции слов начинаются с 1. Перед началом реализации напишите тесты, а потом приступайте к реализации (test driven development)

Примеры использования:

getWordAtPosition('Hello world from JavaScript', 2);  // 'world'
getWordAtPosition('The quick brown fox jumps', 4);   // 'fox'
getWordAtPosition('One two three four five', 5);     // 'five'
getWordAtPosition('ChatGPT is a powerful tool', 3);  // 'a'

Требования:

Если позиция превышает количество слов в тексте, вернуть пустую строку. Если позиция меньше 1, вернуть пустую строку. Пункты и знаки препинания не должны учитываться в качестве слов. Слова разделяются пробелами или другими разделительными символами (например, запятыми, точками, точками с запятой и т.д.). Функция должна корректно обрабатывать текст, содержащий несколько пробелов или других разделительных символов подряд. Дополнительное условие:

Подумайте, как сделать функцию устойчивой к неправильным входным данным, например, если в качестве позиции передано не число или текст содержит необычные символы.

Функционал должен быть покрытый тестами. Примеры тестовых случаев:

getWordAtPosition('  This is a test string  ', 3);  // 'a'
getWordAtPosition('A, quick, brown; fox!', 2);     // 'quick'
getWordAtPosition('Hello world', 5);               // ''
getWordAtPosition('One two', 0);                   // ''
getWordAtPosition('Punctuation: doesn\'t count!', 3); // 'count'

Этап 7.

Задание3: Функция для обработки целых предложений Цель: Реализовать функцию, которая принимает на вход строку, содержащую одно или несколько предложений, и выполняет над ними различные операции.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published