Журнал

30 задач для начинающих разработчиков на JS

2.08.2023

Задача: Сумма чисел

Условие: Напишите функцию, которая принимает два числа в качестве аргументов и возвращает их сумму.

Уровень сложности: Легкий

Решение:

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;

Похожие статьи:

СТАРТ 23 октября 2023

Привет!
Я бот школы DevHouse.
Хочешь в IT? Я знаю как.
Preloader