JavaScript · Синтаксис · Начальный уровень
Функции уровень 2
Расширенная практика функций в JavaScript: обработка строк и чисел, логические проверки, массивы, фильтрация, подсчёты, поиск значений и написание переиспользуемых функций.
Краткое введение в тему и пояснения перед упражнениями (упражнения ниже):
Паттерны этого уровня
#Упражнения:
Even или Odd.
#Напишите функцию, которая принимает число и возвращает строку "Even" , если число чётное, и "Odd" , если нечётное.
function evenOrOdd(n) {
// ваш код здесь
}
Решение
function evenOrOdd(n) {
if (n % 2 === 0) {
return "Even";
} else {
return "Odd";
}
}
Переворот строки функцией.
#Напишите функцию, которая принимает строку и возвращает её в перевёрнутом виде.
function reverseText(text) {
// ваш код здесь
}
Решение
function reverseText(text) {
return text.split('').reverse().join('');
}
// или так можно через цикл
function reverseText(text) {
let result = "";
for (let char of text) {
result = char + result;
}
return result;
}
Среднее арифметическое.
#Напишите функцию, которая принимает два числа и возвращает их среднее арифметическое.
function average(a, b) {
// ваш код здесь
}
Решение
function average(a, b) {
return (a + b) / 2;
}
Подсчёт гласных.
#Напишите функцию, которая принимает строку и возвращает количество гласных букв в ней. Гласные: a, e, i, o, u, y (регистр не важен).
function countVowels(text) {
// ваш код здесь
}
Решение
function countVowels(text) {
let vowels = "aeiouy";
let count = 0;
for (let ch of text.toLowerCase()) {
if (vowels.includes(ch)) {
count += 1;
}
}
return count;
}
Делимость на 3 и 5.
#Напишите функцию, которая принимает число и возвращает true , если оно делится на 3 и на 5, иначе false .
function divisibleBy3And5(n) {
// ваш код здесь
}
Решение
function divisibleBy3And5(n) {
return (n % 3 === 0) && (n % 5 === 0);
}
Строка без пробелов.
#Напишите функцию, которая принимает строку и возвращает её без пробелов.
function removeSpaces(text) {
// ваш код здесь
}
Решение
function removeSpaces(text) {
let result = "";
for (let ch of text) {
if (ch !== " ") {
result += ch;
}
}
return result;
}
Сумма положительных элементов.
#Напишите функцию, которая принимает массив чисел и возвращает сумму положительных элементов.
function sumPositive(numbers) {
// ваш код здесь
}
Решение
function sumPositive(numbers) {
let total = 0;
for (let n of numbers) {
if (n > 0) {
total += n;
}
}
return total;
}
Проверка палиндрома.
#Напишите функцию, которая принимает строку и возвращает true , если она является палиндромом.
function isPalindrome(text) {
// ваш код здесь
}
Решение
function isPalindrome(text) {
return text === text.split('').reverse().join('');
}
// или так можно: подготовить перевёрнутую строку отдельно
function isPalindrome(text) {
let reversed = text.split("").reverse().join("");
return text === reversed;
}
Positive, Negative или Zero.
#Напишите функцию, которая принимает число и возвращает строку: "Positive", "Negative" или "Zero".
function describeNumber(n) {
// ваш код здесь
}
Решение
function describeNumber(n) {
if (n > 0) {
return "Positive";
} else if (n < 0) {
return "Negative";
} else {
return "Zero";
}
}
Количество слов в строке.
#Напишите функцию, которая принимает строку и возвращает количество слов в ней. Слова разделены пробелами.
function countWords(text) {
// ваш код здесь
}
Решение
function countWords(text) {
if (text === "") {
return 0;
}
return text.trim() ? text.trim().split(/\s+/).length : 0;
}
// или так можно: промежуточный массив слов сохранить в переменную
function countWords(text) {
let words = text.trim() ? text.trim().split(/\s+/) : [];
return words.length;
}
Кратность десяти.
#Напишите функцию, которая принимает число и возвращает true, если оно кратно 10, иначе false.
function isMultipleOfTen(n) {
// ваш код здесь
}
Решение
function isMultipleOfTen(n) {
return n % 10 === 0;
}
Первый и последний символ функцией.
#Напишите функцию, которая принимает строку и возвращает её первый и последний символ в виде одной строки.
function firstAndLast(text) {
// ваш код здесь
}
Решение
function firstAndLast(text) {
if (text === "") {
return "";
}
return text[0] + text[text.length - 1];
}
Yes, если больше 100.
#Напишите функцию, которая принимает число и возвращает строку "Yes", если число больше 100, иначе "No".
function moreThanHundred(n) {
// ваш код здесь
}
Решение
function moreThanHundred(n) {
if (n > 100) {
return "Yes";
} else {
return "No";
}
}
Подсчёт буквы a.
#Напишите функцию, которая принимает строку и возвращает количество букв "a" в ней (регистр не важен).
function countA(text) {
// ваш код здесь
}
Решение
function countA(text) {
let count = 0;
for (let ch of text.toLowerCase()) {
if (ch === "a") {
count += 1;
}
}
return count;
}
Разность по модулю.
#Напишите функцию, которая принимает два числа и возвращает их разность по модулю.
function absDiff(a, b) {
// ваш код здесь
}
Решение
function absDiff(a, b) {
let diff = a - b;
if (diff < 0) {
diff = -diff;
}
return diff;
}
// или так можно через Math.abs
function difference(a, b) {
return Math.abs(a - b);
}
Чётная длина строки.
#Напишите функцию, которая принимает строку и возвращает true , если её длина чётная, иначе false .
function isEvenLength(text) {
// ваш код здесь
}
Решение
function isEvenLength(text) {
return text.length % 2 === 0;
}
Последняя цифра числа.
#Напишите функцию, которая принимает число и возвращает его последнюю цифру.
function lastDigit(n) {
// ваш код здесь
}
Решение
function lastDigit(n) {
if (n < 0) {
n = -n;
}
return n % 10;
}
Без первой и последней буквы.
#Напишите функцию, которая принимает строку и возвращает её без первой и последней буквы.
function trimEdges(text) {
// ваш код здесь
}
Решение
function trimEdges(text) {
if (text.length <= 2) {
return "";
}
return text.slice(1, -1);
}
Small, Medium или Large.
#Напишите функцию, которая принимает число и возвращает строку: - "Small" — если число меньше 10 - "Medium" — если от 10 до 100 - "Large" — если больше 100
function sizeLabel(n) {
// ваш код здесь
}
Решение
function sizeLabel(n) {
if (n < 10) {
return "Small";
} else if (n <= 100) {
return "Medium";
} else {
return "Large";
}
}
Удаление восклицательных знаков.
#Напишите функцию, которая принимает строку и возвращает её без всех восклицательных знаков "!".
function removeExclamations(text) {
// ваш код здесь
}
Решение
function removeExclamations(text) {
let result = "";
for (let ch of text) {
if (ch !== "!") {
result += ch;
}
}
return result;
}
// или так можно через replaceAll
function removeExclamations(text) {
return text.replaceAll("!", "");
}