Задача: Сумма чисел
Условие: Напишите функцию, которая принимает два числа в качестве аргументов и возвращает их сумму.
Уровень сложности: Легкий
Решение:
function sumNumbers(a, b) {
return a + b;
}
Задача: Палиндром
Условие: Напишите функцию, которая принимает строку в качестве аргумента и возвращает true, если строка является палиндромом, и false в противном случае. Палиндром — это слово, фраза, число или другая последовательность символов, которая читается одинаково слева направо и справа налево.
Уровень сложности: Легкий
Решение:
function isPalindrome(str) {
const reversedStr = str.split('').reverse().join('');
return str === reversedStr;
}
Задача: Факториал
Условие: Напишите функцию, которая принимает число в качестве аргумента и возвращает факториал этого числа. Факториал — это произведение всех положительных целых чисел от 1 до введенного числа.
Уровень сложности: Легкий
Решение:
function factorial(n) {
if (n === 0 || n === 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
Задача: Поиск максимального числа
Условие: Напишите функцию, которая принимает массив чисел в качестве аргумента и возвращает максимальное число из этого массива.
Уровень сложности: Легкий
Решение:
function getMaxNumber(arr) {
return Math.max(...arr);
}
Задача: Проверка на простое число
Условие: Напишите функцию, которая принимает число в качестве аргумента и возвращает true, если число является простым, и false в противном случае. Простое число — это натуральное число больше 1, которое не имеет делителей, кроме 1 и самого себя.
Уровень сложности: Средний
Решение:
function isPrime(n) {
if (n <= 1) {
return false;
}
for (let i = 2; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
return false;
}
}
return true;
}
Задача: Перевернутая строка
Условие: Напишите функцию, которая принимает строку в качестве аргумента и возвращает эту строку, перевернутую задом наперед.
Уровень сложности: Легкий
Решение:
function reverseString(str) {
return str.split('').reverse().join('');
}
Задача: Подсчет гласных
Условие: Напишите функцию, которая принимает строку в качестве аргумента и возвращает количество гласных в этой строке. Гласные буквы — это ‘a’, ‘e’, ‘i’, ‘o’, ‘u’.
Уровень сложности: Легкий
Решение:
function countVowels(str) {
const vowels = 'aeiou';
let count = 0;
for (let char of str.toLowerCase()) {
if (vowels.includes(char)) {
count++;
}
}
return count;
}
Задача: Уникальные элементы
Условие: Напишите функцию, которая принимает массив чисел в качестве аргумента и возвращает новый массив, содержащий только уникальные элементы из исходного массива.
Уровень сложности: Средний
Решение:
function getUniqueElements(arr) {
return [...new Set(arr)];
}
Задача: Обрезание строки
Условие: Напишите функцию, которая принимает строку и число n в качестве аргументов и возвращает новую строку, обрезанную до заданной длины n. Если длина строки меньше n, то вернуть исходную строку без изменений.
Уровень сложности: Легкий
Решение:
function truncateString(str, n) {
if (str.length > n) {
return str.slice(0, n) + '...';
} else {
return str;
}
}
Задача: Обрезание массива
Условие: Напишите функцию, которая принимает массив и число n в качестве аргументов и возвращает новый массив, содержащий только первые n элементов исходного массива. Если длина массива меньше n, то вернуть исходный массив без изменений.
Уровень сложности: Легкий
Решение:
function truncateArray(arr, n) {
return arr.slice(0, n);
}
Задача: Вывод чисел от 1 до n
Условие: Напишите функцию, которая принимает число n в качестве аргумента и выводит все числа от 1 до n включительно, каждое число на отдельной строке.
Уровень сложности: Легкий
Решение:
function printNumbers(n) {
for (let i = 1; i <= n; i++) {
console.log(i);
}
}
Задача: Удвоение чисел
Условие: Напишите функцию, которая принимает массив чисел в качестве аргумента и возвращает новый массив, содержащий удвоенные значения каждого элемента из исходного массива.
Уровень сложности: Легкий
Решение:
function doubleNumbers(arr) {
return arr.map(num => num * 2);
}
Задача: Фибоначчи
Условие: Напишите функцию, которая принимает число n в качестве аргумента и возвращает массив, содержащий первые n чисел Фибоначчи. Числа Фибоначчи — это последовательность чисел, в которой каждое число является суммой двух предыдущих чисел. Первые два числа Фибоначчи равны 1.
Уровень сложности: Средний
Решение:
function fibonacci(n) {
const fibArr = [1, 1];
for (let i = 2; i < n; i++) {
fibArr.push(fibArr[i - 1] + fibArr[i - 2]);
}
return fibArr;
}
Задача: Сортировка массива
Условие: Напишите функцию, которая принимает массив чисел в качестве аргумента и возвращает новый массив, содержащий отсортированные по возрастанию значения исходного массива.
Уровень сложности: Средний
Решение:
function sortArray(arr) {
return arr.sort((a, b) => a - b);
}
Задача: Среднее арифметическое
Условие: Напишите функцию, которая принимает массив чисел в качестве аргумента и возвращает среднее арифметическое значение этих чисел.
Уровень сложности: Легкий
Решение:
function average(arr) {
const sum = arr.reduce((total, num) => total + num, 0);
return sum / arr.length;
}
Задача: Проверка на симметрию массива
Условие: Напишите функцию, которая принимает массив в качестве аргумента и возвращает true, если массив симметричен, и false в противном случае. Симметричный массив — это массив, в котором значения симметрично расположены относительно центра.
Уровень сложности: Средний
Решение:
function isSymmetric(arr) {
const len = arr.length;
for (let i = 0; i < len / 2; i++) {
if (arr[i] !== arr[len - 1 - i]) {
return false;
}
}
return true;
}
Задача: Разворот массива
Условие: Напишите функцию, которая принимает массив в качестве аргумента и возвращает новый массив, содержащий элементы исходного массива в обратном порядке.
Уровень сложности: Легкий
Решение:
function reverseArray(arr) {
return arr.reverse();
}
Задача: Перетасовка массива
Условие: Напишите функцию, которая принимает массив в качестве аргумента и возвращает новый массив, полученный путем перестановки элементов исходного массива в случайном порядке.
Уровень сложности: Средний
Решение:
function shuffleArray(arr) {
for (let i = arr.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[arr[i], arr[j]] = [arr[j], arr[i]];
}
return arr;
}
Задача: Проверка на анаграмму
Условие: Напишите функцию, которая принимает две строки в качестве аргументов и возвращает true, если эти строки являются анаграммами, и false в противном случае. Анаграмма — это слово, фраза или имя, образованное путем перестановки букв другого слова, фразы или имени.
Уровень сложности: Средний
Решение:
function isAnagram(str1, str2) {
const sortedStr1 = str1.toLowerCase().split('').sort().join('');
const sortedStr2 = str2.toLowerCase().split('').sort().join('');
return sortedStr1 === sortedStr2;
}
Задача: Счастливый билет
Условие: Напишите функцию, которая принимает число в качестве аргумента и возвращает true, если сумма первых трех цифр равна сумме последних трех цифр, и false в противном случае. Цифры в числе необходимо считать справа налево.
Уровень сложности: Средний
Решение:
function isLuckyTicket(ticketNumber) {
const str = String(ticketNumber);
const sum1 = Number(str[0]) + Number(str[1]) + Number(str[2]);
const sum2 = Number(str[3]) + Number(str[4]) + Number(str[5]);
return sum1 === sum2;
}
Задача: Сдвиг элементов массива
Условие: Напишите функцию, которая принимает массив и число n в качестве аргументов и возвращает новый массив, полученный путем циклического сдвига элементов исходного массива на n позиций влево.
Уровень сложности: Средний
Решение:
function shiftArray(arr, n) {
const len = arr.length;
const shift = n % len;
if (shift === 0) {
return arr;
} else if (shift > 0) {
return [...arr.slice(shift), ...arr.slice(0, shift)];
} else {
return [...arr.slice(len + shift), ...arr.slice(0, len + shift)];
}
}
Задача: Степень числа
Условие: Напишите функцию, которая принимает число и степень в качестве аргументов и возвращает число, возведенное в указанную степень.
Уровень сложности: Легкий
Решение:
function powerOfNumber(base, power) {
return Math.pow(base, power);
}
Задача: Максимальное и минимальное число
Условие: Напишите функцию, которая принимает массив чисел в качестве аргумента и возвращает массив, содержащий максимальное и минимальное число из исходного массива. Уровень сложности: Легкий
Решение:
function findMinMax(arr) {
const max = Math.max(...arr);
const min = Math.min(...arr);
return [max, min];
}
Задача: Удаление дубликатов
Условие: Напишите функцию, которая принимает строку в качестве аргумента и возвращает новую строку, содержащую только уникальные символы из исходной строки.
Уровень сложности: Средний
Решение:
function removeDuplicates(str) {
return [...new Set(str.split(''))].join('');
}
Задача: Проверка на полиндром (с учетом пробелов и знаков препинания)
Условие: Напишите функцию, которая принимает строку в качестве аргумента и возвращает true, если строка является полиндромом (игнорируя пробелы и знаки препинания), и false в противном случае.
Уровень сложности: Средний
Решение:
function isPalindrome(str) {
const cleanStr = str.toLowerCase().replace(/[^a-zа-я0-9]/g, '');
const reversedStr = cleanStr.split('').reverse().join('');
return cleanStr === reversedStr;
}
Задача: Приближенное число пи
Условие: Напишите функцию, которая принимает число n в качестве аргумента и возвращает приближенное значение числа пи (π) по формуле Лейбница для n итераций.
Уровень сложности: Средний
Решение:
function calculatePi(n) {
let pi = 0;
let sign = 1;
for (let i = 0; i < n;