Обратить строку. Напишите функцию, которая принимает строку в качестве входных данных и возвращает ее в обратном порядке.
function reverseString(str) { // Split the string into an array of characters const chars = str.split(''); // Reverse the order of the characters in the array const reversedChars = chars.reverse(); // Join the characters back into a string const reversedStr = reversedChars.join(''); // Return the reversed string return reversedStr; }
Проверка палиндрома: напишите функцию, которая проверяет, является ли заданная строка палиндромом (читается одинаково вперед и назад).
function isPalindrome(str) { // Remove non-alphanumeric characters and convert to lowercase const formattedStr = str.replace(/[^A-Za-z0-9]/g, '').toLowerCase(); // Reverse the formatted string const reversedStr = formattedStr.split('').reverse().join(''); // Check if the original and reversed strings are equal return formattedStr === reversedStr; }
Факториал. Напишите функцию, которая вычисляет факториал заданного числа. Факториал числа n — это произведение всех положительных целых чисел, меньших или равных n.
function factorial(num) { if (num === 0) { return 1; } return num * factorial(num - 1); }
Сумма массива. Напишите функцию, которая вычисляет сумму всех чисел в массиве.
const sumArray = arr => arr.reduce((sum, num) => sum + num, 0);
Найти максимальное число. Напишите функцию, которая находит максимальное число в массиве.
const findMaximumNumber = arr => Math.max(...arr);
Удалить дубликаты. Напишите функцию, которая удаляет повторяющиеся элементы из массива и возвращает новый массив без дубликатов.
function removeDuplicates(arr) { return [...new Set(arr)]; } //older browsers function removeDuplicates(arr) { const uniqueArr = []; for (let i = 0; i < arr.length; i++) { if (!uniqueArr.includes(arr[i])) { uniqueArr.push(arr[i]); } } return uniqueArr; }
Проверить простое число. Напишите функцию, которая проверяет, является ли заданное число простым (делится только на 1 и само на себя).
function findPrimeNumbers(n) { const primes = []; for (let num = 2; num <= n; num++) { let isPrime = true; for (let i = 2; i < num; i++) {
Найти самое длинное слово. Напишите функцию, которая принимает предложение в качестве входных данных и возвращает самое длинное слово в предложении.
function findLongestWord(sentence) { const words = sentence.split(' '); let longestWord = ''; for (const word of words) { if (word.length > longestWord.length) { longestWord = word; } } return longestWord; }
Проверка анаграммы. Напишите функцию, которая проверяет, являются ли две строки анаграммами (содержат одинаковые символы в разном порядке).
function checkAnagram(str1, str2) { const sortedStr1 = str1.split('').sort().join(''); const sortedStr2 = str2.split('').sort().join(''); return sortedStr1 === sortedStr2; }
Регистр заглавий: напишите функцию, которая преобразует заданную строку в регистр заглавий (первая буква каждого слова заглавная).
function toTitleCase(sentence) { const words = sentence.split(' '); for (let i = 0; i < words.length; i++) { const firstLetter = words[i][0].toUpperCase(); const restOfWord = words[i].slice(1).toLowerCase(); words[i] = firstLetter + restOfWord; } return words.join(' '); }
Обратить целое число. Напишите функцию, которая принимает целое число в качестве входных данных и возвращает обратное значение этого целого числа.
function reverseInteger(num) { const reversed = parseInt(num.toString().split('').reverse().join('')); return Math.sign(num) * reversed; }
Подсчет символов. Напишите функцию, которая подсчитывает количество вхождений каждого символа в заданной строке.
function countCharacters(str) { const charCount = {}; for (const char of str) { charCount[char] = charCount[char] + 1 || 1; } return charCount; }
Найти пропущенное число. Напишите функцию, которая находит пропущенное число в заданном массиве последовательных чисел.
function findMissingNumber(arr) { const n = arr.length + 1; const expectedSum = (n * (n + 1)) / 2; const actualSum = arr.reduce((sum, num) => sum + num, 0); return expectedSum - actualSum; }
Подтвердить адрес электронной почты. Напишите функцию, которая проверяет, является ли данная строка действительным адресом электронной почты.
function validateEmail(email) { const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return regex.test(email); }
Удалить четные числа. Напишите функцию, которая удаляет все четные числа из заданного массива и возвращает новый массив только с нечетными числами.
const removeEvenNumbers = arr => arr.filter(num => num % 2 !== 0);
Проверка числа Армстронга. Напишите функцию, которая проверяет, является ли заданное число числом Армстронга (сумма кубов его цифр равна самому числу).
function isArmstrongNumber(num) { const numString = num.toString(); const numDigits = numString.length; let sum = 0; for (const digit of numString) { sum += parseInt(digit) ** numDigits; } return sum === num; }
Двоичное число в десятичное. Напишите функцию, которая преобразует двоичное число в его десятичный эквивалент.
function binaryToDecimal(binary) { return parseInt(binary, 2); }
Найдите все возможные анаграммы данного слова:
function getAnagrams(word) { // Base case: If the word has only one or zero characters, return an array with the word itself if (word.length <= 1) { return [word]; } const anagrams = []; // Iterate through each character in the word for (let i = 0; i < word.length; i++) { // Extract the current character const currentChar = word[i]; // Exclude the current character from the remaining word const remainingChars = word.slice(0, i) + word.slice(i + 1); // Recursively find anagrams of the remaining characters const subAnagrams = getAnagrams(remainingChars); // Append the current character to each sub-anagram for (let j = 0; j < subAnagrams.length; j++) { anagrams.push(currentChar + subAnagrams[j]); } } return anagrams; }
Лифт: когда пользователь вводит число, функция добавляет это число в массив и возвращает отсортированный массив.
function addAndSortNumber(number, array) { array.push(number); return array.sort((a, b) => a - b); } //without sort function addAndSortNumber(number, array) { if (array.length === 0) { array.push(number); } else { let index = 0; while (index < array.length && array[index] < number) { index++; } array.splice(index, 0, number); } return array; }
Серия Фибоначчи:
function generateFibonacciSeries(n) { const series = [0, 1]; // Initialize the series with the first two numbers // Generate the Fibonacci series up to n while (series[series.length - 1] + series[series.length - 2] <= n) { const nextNumber = series[series.length - 1] + series[series.length - 2]; series.push(nextNumber); } return series; }
Подсчет гласных: напишите функцию, которая подсчитывает количество гласных в заданной строке. Рассмотрим как прописные, так и строчные гласные (a, e, i, o, u).
function countVowels(str) { const vowels = 'aeiouAEIOU'; let count = 0; for (let i = 0; i < str.length; i++) { if (vowels.includes(str[i])) { count++; } } return count; }
Объединить отсортированные массивы: напишите функцию, которая объединяет два отсортированных массива в один отсортированный массив. Входные массивы уже отсортированы по возрастанию.
function mergeSortedArrays(arr1, arr2) { const mergedArray = []; let i = 0; // Pointer for arr1 let j = 0; // Pointer for arr2 while (i < arr1.length && j < arr2.length) { if (arr1[i] <= arr2[j]) { mergedArray.push(arr1[i]); i++; } else { mergedArray.push(arr2[j]); j++; } } // If there are any remaining elements in arr1 or arr2, append them to the mergedArray while (i < arr1.length) { mergedArray.push(arr1[i]); i++; } while (j < arr2.length) { mergedArray.push(arr2[j]); j++; } return mergedArray; }