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("!", "");
}