Вы находитесь на странице: 1из 16

1) вопрос Is n divisible by x and y?

Создайте функцию, которая проверяет, делится ли число n на два числа x И


y. Все входные данные являются положительными, ненулевыми цифрами.
Примеры:
1) n = 3, x = 1, y = 3 => верно, потому что 3 делится на 1 и 3
2) n = 12, x = 2, y = 6 => верно, потому что 12 делится на 2 и 6
3) n = 100, x = 5, y = 3 => ложь, потому что 100 не делится на 3
4) n = 12, x = 7, y = 5 => ложь, потому что 12 не делится ни на 7, ни на 5

решение
function isDivisible(n, x, y) {
if (n % x === 0 && n % y === 0) {
return true;
} else { return false};
}

2)вопрос Century From Year?


Первое столетие охватывает период с 1 года по 100 год включительно,
второе столетие — с 101 года по 200 год включительно и т. д.
Задача
Учитывая год, верните столетие, в котором он находится.
Примеры: 1705 --> 18 1601 --> 17
2000 --> 20 1900 --> 19

решение

function century(year) {
return Math.ceil(year/100)
}
3) Keep Hydrated?
КАТЯ любит кататься на велосипеде.
Поскольку КАТЯ знает, как важно избегать обезвоживания, она выпивает
0,5 литра воды за час езды на велосипеде.
Вам дается время в часах, и вам нужно вернуть количество литров, которые
выпьет КАТЯ, округленное до наименьшего значения.
Например, время = 3 ----> литр = 1
время = 6,7 ---> литров = 3
время = 11,8 --> литров = 5

function litres(time) {
return Math.floor(time*0.5);
}
4) Basic Mathematical Operations?
Ваша задача — создать функцию, которая выполняет четыре основные
математические операции.
Функция должна принимать три аргумента - операция(строка/символ),
значение1(число), значение2(число).
Функция должна возвращать числовой результат после применения
выбранной операции.
Примеры (Оператор, значение1, значение2) --> вывод
('+', 4, 7) --> 11 ('*', 5, 5) --> 25
('-', 15, 18) --> -3 ('/', 49, 7) --> 7

function basicOp(operation, value1, value2) {


let sum = 0;
if(operation === '+') {
sum = value1 + value2;
} else if(operation === '-') {
sum = value1 - value2;
} else if(operation === '*') {
sum = value1 * value2;
} else if(operation === '/') {
sum = value1 / value2;
}
return sum
}
5) Abbreviate a Two-Word Name?
Напишите функцию для преобразования имени в инициалы. Строго
состоит из двух слов с одним пробелом между ними. На выходе должны
быть две заглавные буквы с точкой, разделяющей их.
Это должно выглядеть так:
Sam Harris=> S.H patrick feeney=> P.F.

function abbrevName(name){
const [firstName, lastName] = name.split(' ');
return `${firstName[0]}.${lastName[0]}`.toUpperCase()
}

6) Convert number to reversed array of digits?


Учитывая случайное неотрицательное число, вы должны вернуть цифры
этого числа в массиве в обратном порядке.
Пример:
348597 => [7,9,5,8,4,3]
0 => [0]

function digitize(n) {
return Array.from(String(n), Number).reverse()
}
7) A Needle in the Haystack?
Сможете ли вы найти иголку в стоге сена?
Напишите функцию findNeedle(), которая принимает массив, полный
мусора, но содержащий одну «иглу».
После того, как ваша функция найдет иглу, она должна вернуть сообщение
(в виде строки), в котором говорится:
"найдена игла в положении " плюс индекс, в котором она нашла иглу,
поэтому: findNeedle(['сено', 'мусор', 'сено', 'сено', 'больше мусора', 'иглы',
'randomJunk'])
должен возвращать «найдена игла в позиции 5» (в COBOL «найдена игла в
позиции 6»)

function findNeedle(haystack) {
const result = haystack.findIndex(item => item === 'needle');
return `found the needle at position ${result}`
}

8) Convert a String to a Number!


Нам нужна функция, которая может преобразовать строку в число. Какие
способы достижения этого вы знаете?
Примеры "1234" --> 1234;"605» --> 605; "-7" --> -7

const stringToNumber = function(str){


return Number(str)
}

9) Beginner - Lost Without a Map


Учитывая массив целых чисел, вернуть новый массив с удвоением каждого
значения.
Например, [1, 2, 3] --> [2, 4, 6]

function maps(x){
return x.map(x => x*2)
}
10) Returning Strings
Создайте функцию, которая будет возвращать оператор приветствия,
использующий ввод; ваша программа должна вернуть "Привет, <имя>, как
дела сегодня?".

function greet(name){
return `Hello, ${name} how are you doing today?`
}

11) Vowel Count


Возвращает количество (количество) гласных в заданной строке.
Мы будем рассматривать a, e, i, o, u как гласные для этой Ката (но не y).
Входная строка будет состоять только из строчных букв и/или пробелов.

function getCount(str) {
let vowelsCount = 0;
const vowelLetters = ['a', 'e', 'i', 'o', 'u'];
for (const letter of str) {
if (vowelLetters.includes(letter)) {
vowelsCount += 1;
}
}
return vowelsCount;
}
12) Square Every Digit
вас просят возвести в квадрат каждую цифру числа и соединить их.
Например, если мы пропустим через функцию 9119, получится 811181,
потому что 92 — это 81, а 12 — это 1.
Примечание. Функция принимает целое число и возвращает целое число.

function squareDigits(n){
const str = Array.from(String(n), Number).map(number =>
Math.pow(number, 2)).join('');
return Number(str);
}

13) Disemvowel Trolls


написать функцию, которая принимает строку и возвращает новую
строку, в которой удалены все гласные.
Например, строка «Этот сайт для неудачников, LOL!» станет «Ths wbst s
fr lsrs LL!».
function getCount(str) {
let vowelLetters = [
'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'
];

let result = '';

for (const letter of str) {


if (!vowelLetters.includes(letter)) {
result += letter;
}
}
return result;
}

console.log(getCount('This website is')) //Ths wbst s


14) Highest and Lowest
дается строка чисел, разделенных пробелами, и вы должны вернуть
наибольшее и наименьшее число.
Примеры
HighAndLow("1 2 3 4 5"); // вернуть "5 1"
highAndLow("1 2 -3 4 5"); // вернуть "5 -3"
highAndLow("1 9 3 4 -5"); // вернуть "9 -5"

function highAndLow(number) {
const numberArray = Array.from(number.split(''), Number)
let resultMin = Math.min(...numberArray);
let resultMax = Math.max(...numberArray);
return `${resultMax} ${resultMin}`
}

15) Descending Order


задача состоит в том, чтобы создать функцию, которая может
принимать любое неотрицательное целое число в качестве аргумента и
возвращать его с цифрами в порядке убывания. По сути, переставьте
цифры, чтобы получить максимально возможное число.
Примеры: Ввод: 42145 Вывод: 54421; Ввод: 145263 Вывод: 654321.

function descendingOrder(number) {
let numberArray = Array.from(String(number), Number);
result = numberArray.sort((a, b) => b - a);
return Number(result.join(''))
}
16) Mumbling
написать функцию accum:
Примеры: accum("abcd") -> "A-Bb-Ccc-Dddd"
accum("RqaEzty") -> "R-Qq-Aaa-Eeee-Zzzzz-Ttttt-Yyyyyyy"
function accum(s) {
let arr = s.split('');

let arrMap = arr.map(


(element, copy) => element.toUpperCase()
+ element.toLowerCase().repeat(copy)).join('-')

return arrMap;
}
17) Get the Middle Character
Вам дадут слово. Ваша задача — вернуть средний символ слова. Если
длина слова нечетная, вернуть средний символ. Если длина слова
четная, верните средние 2 символа.
#Примеры:
Kata.getMiddle("test") должен возвращать "es"
Kata.getMiddle("testing") должен возвращать "t"
Kata.getMiddle("middle") должен возвращать "dd"
Kata.getMiddle("A") должен вернуть "A"

function getMiddle(str) {
let start = 0;
let end = 0;
// нечетные
if (str.length % 2 === 1) {
console.log(start = str.length / 2);
end = 1;
} else { // четные
start = str.length / 2 - 1;
end = 2;
}

const middleStr = str.substring(start, start + end);

return middleStr;
}
18) You're a square!
Учитывая целое число, определите, является ли оно квадратным
числом
пример
-1 => false; 0 => true; 3 => false; 4 => true; 25 => true; 26 => false

var isSquare = function (n) {


const result = Math.sqrt(n);
return result % 1 === 0;
}

19) Exes and Ohs


Проверьте, содержит ли строка одинаковое количество «x» и «o».
Метод должен возвращать логическое значение и не учитывать
регистр. Строка может содержать любой символ.
Примеры ввода/вывода: XO("ooxx") => истина; XO("xooxx") => ложь;
XO("ooxXm") => истина; XO("zpzpzpp") => true // при отсутствии 'x' и 'o'
должно возвращаться значение true; XO("zzoo") => ложь
function XO(str) {
let x = 0;
let o = 0;
let newStr = str.toLowerCase().split('')

for (const currentX of newStr) {


if (currentX === 'x') { x += 1 }
}
for (const currentO of newStr) {
if (currentO === 'o') { o += 1 }
}
return x === o
}
20) List Filtering
создадите функцию, которая берет список неотрицательных целых
чисел и строк и возвращает новый список с отфильтрованными
строками.
Пример filter_list([1,2,'a','b']) == [1,2]
filter_list([1,'a','b',0,15]) == [1,0,15]

function filter_list(l) {
return l.filter(el => typeof el === "number")
}

21)
Изограмма — это слово, в котором нет повторяющихся букв,
последовательных или непоследовательных. Реализуйте функцию,
определяющую, является ли строка, содержащая только буквы,
изограммой. Предположим, что пустая строка является
изограммой. Игнорировать регистр букв.
Пример: "Дерматоглифика" --> правд; "аба" --> ложь
"moOse" --> false (игнорировать регистр букв)

function isIsogram(str) {
let strLower = new Set(str.toLowerCase()).size;
return strLower === str.length;
}
22) Shortest Word
Просто, учитывая строку слов, вернуть длину кратчайшего слова
function findShort(s) {
const result = s.split(' ')

let min = result[0]

for (const word of result) {


if(word.length < min.length) {
min = word;
}
}

return min.length
}
console.log((findShort("Let's travel abroad shall we")));// 2
23) Complementary DNA

Пример: (ввод --> вывод)


"ATTGC" --> "TAACG"
"GTAT" --> "CATA"
function DNAStrand(dna) {
let result = dna.split('')

let finish = result.map((el) => {


if (el === 'A') {
el = 'T'
const el__T = el
return el__T
}

if (el === 'T') {


el = 'A'
const el__A = el
return el__A
}

if (el === 'C') {


el = 'G'
const el__G = el
return el__G
}

if (el === 'G') {


el = 'C'
const el__C = el
return el__C
}
}).join('')
return finish
}

console.log((DNAStrand("AAAA"))) // 'TTTT'
console.log((DNAStrand("ATTGC"))) //"TAACG"
console.log((DNAStrand("GTAT"))) //"CATA"
24) Credit Card Mask
Ваша задача — написать функцию maskify, которая заменяет все
символы, кроме последних четырех, на «#».
function maskify(cc) {
const result = cc.split('')
.map((letter, idx) => {
return idx < cc.length - 4 ? '#' : letter;
})
.join('');
return result;
}

console.log((maskify('4556364607935616'))) ///
############5616
console.log((maskify('4444616'))) // ###4616

function num(a, b) {
let aTest = a % 2;
let bTest = b % 2;

if (!aTest && !bTest) {


return a * b;
} else if (aTest && bTest) {
return a + b;
} else if (aTest) {
return a;
} else if (bTest) {
return b;
}
}

console.log(num(1,3)); /// 4
console.log(num(4,2)); /// 8
console.log(num(2,3)); /// 3
задача найти вес всех блюд зная что цена больше 80 и меньше 7 штук

const food =[
{name: 'fff', weight: 350, price: 68, quantity: 10},
{name: 'fff', weight: 350, price: 56, quantity: 8},
{name: 'fff', weight: 400, price: 68, quantity: 16},
{name: 'fff', weight: 675, price: 139, quantity: 5},
{name: 'fff', weight: 1600, price: 339, quantity: 9},
{name: 'fff', weight: 230, price: 70, quantity: 9},
{name: 'fff', weight: 740, price: 159, quantity: 9},
{name: 'fff', weight: 230, price: 90, quantity: 5},
]

let sum = 0;
for (let i = 0; i < food.length; i++) {
food[i].price >= 80 && food[i].quantity <= 7
? sum += food[i].weight
: sum
}

console.log(sum) // 905

Вам также может понравиться