JavaScript test
10.6K subscribers
3.03K photos
6 videos
4.13K links
Проверка своих знаний по языку JavaScript.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/js_test

РКН: clck.ru/3KHeYk
Download Telegram
Напишите функцию isEmpty(object), которая возвращает true, если у объекта нет свойств, иначе false.

Ответ - https://telegra.ph/Answer-09-08-3
Напишите функцию-конструктор Accumulator(val).

Объект, который она создаёт, должен уметь следующее:

Хранить «текущее значение» в свойстве value. Начальное значение устанавливается в аргументе конструктора val.
Метод read принимает один параметр(число) и прибавляет его к свойству value.

Ответ - https://telegra.ph/Answer-09-10
На входе массив чисел, например: arr = [-2, -1, 1, 2].

Задача: найти непрерывный подмассив в arr, сумма элементов в котором максимальна.

Функция getMaxSubSum(arr) должна возвращать эту сумму.

Если все элементы отрицательные – ничего не берём(подмассив пустой) и сумма равна «0»:

Ответ - https://telegra.ph/Answer-09-13-2
Что будет выведено в консоль?

Ответ - https://telegra.ph/Answer-09-17-4
Что будет выведено в консоль?

Ответ - https://telegra.ph/Answer-09-20
Что будет выведено в консоль?

Ответ - https://telegra.ph/Answer-09-23-4
Напишите функцию sumTo(n), которая вычисляет сумму чисел 1 + 2 + ... + n.

Ответ - https://telegra.ph/Answer-09-27
Реализуйте функцию mySplit, которая получает на вход строку, а возвращает массив, который состоит из символов строки.

Важное уточнение: использовать метод split нельзя.

Ответ - https://telegra.ph/Answer-10-01-2
В каком порядке отработают обработчики?
Напишите правильный порядок вывода строк в консоль.

Пример:
Script start
setInterval
setTimeout 1
и т.д.

Ответ - https://telegra.ph/Answer-10-04-2
Что будет выведено в консоль?

Ответ - https://telegra.ph/Answer-10-11
Задача: дан лиценизионный ключ, представленный в виде строки S. Строка разделена на N + 1 подгруппу, разделенных N дефисами. Также дано число K.

Необходимо преобразовать лицензионный ключ таким образом, чтобы каждая подгруппа содержала ровно K символов, за исключением 1й подгруппы, которая может быть короче K символов, но должна содержать хотя бы 1 символ. Также между 2мя любыми группами должно быть вставлен дефис. Все строчные буквы преобразовать в прописные.

Входные данные: строка S, состоящая только из букв английского алфавита, цифр и дефисов. K - целое число.

Вывод: преобразованная строка.

Примеры:

1)
S = "5F3Z-2e-9-w", K = 4
Output: "5F3Z-2E9W"

2)
S = "2-5g-3-J", K = 2
Output: "2-5G-3J"

Ответ - https://telegra.ph/Answer-10-18-3
Что будет выведено в консоль?

Ответ - https://telegra.ph/Answer-10-27-5
Задача: Находим блок поврежденных пикселей. Вам дана матрица пикселей, где '0' представляет рабочий пиксель, а '1' представляет поврежденный пиксель.

- Поврежденные пиксели связаны (т.е. есть только одна поврежденная область на матрице). Пиксели соединены по горизонтали и вертикали.

- Также вам даны два целых числа x и y, которые представляют расположение одного из поврежденных пикселей.
Необходимо найти площадь наименьшего (выровненного по оси) прямоугольника, охватывающего все поврежденные пиксели.

Входные данные: Стороны матрицы имеют размер от 1 до 100 пикселей включительно. Элементы матрицы символы '0', '1'.

Вывод: площадь наименьшего прямоугольника, охватывающего все поврежденные пиксели.

Пример:

matrix = [

['0','0','1','0'],

['0','1','1','0'],

['0','1','0','0']

].

x = 0, y = 2

Output: 6

Ответ - https://telegra.ph/Answer-11-03-3
Задача: дано игровое поле, которое задано матрицей m x n, где каждая ячейка представляет собой клетку корабля «X» или пустую клетку «.».

Необходимо найти количество всех кораблей на игровом поле.

Примечание: корабли можно размещать на игровом поле только горизонтально или вертикально. Также по крайней мере, 1 горизонтальная или вертикальная клетка разделяет два корабля.

Входные данные: board — символьная матрица, содержащая символы ‘.’, ‘X’. Размер сторон матрицы от 1 до 100.

Вывод: количество всех кораблей

Пример:

Board = [

[‘X’, ‘.’, ‘.’, ‘X’],

[‘.’, ‘.’, ‘.’, ‘X’],

[‘.’, ‘.’, ‘.’, ‘X’]]

Output: 2

Ответ - https://telegra.ph/Answer-11-04-2
Задача: дано натуральное число, необходимо преобразовать его в римскую запись.

Римские цифры представлены семью разными символами:

I - 1,
V - 5,
X - 10,
L - 50,
C - 100,
D - 500,
M - 1000

Справка: римские цифры обычно пишутся от наибольшего к наименьшему слева направо. Однако цифра четыре - это не IIII. Вместо этого число четыре записывается как IV. Поскольку единица стоит перед пятью, мы вычитаем ее и получаем четыре. Тот же принцип применяется к числу девять, которое записывается как IX. Вычитание используется в шести случаях:

- I можно поставить перед V (5) и X (10), чтобы получилось 4 и 9.
- X можно поставить перед L (50) и C (100), чтобы получилось 40 и 90.
- C можно поставить перед D (500) и M (1000), чтобы получилось 400 и 900.

Входные данные: n - натуральное число от 1 до 3000.

Вывод: римская запись числа n.

Ответ - https://telegra.ph/Answer-11-04-3
Задача: В киоске стакан кваса стоит 5 рублей. Дети стоят в очереди, чтобы купить у вас, и заказывают по одному по порядку. Каждый клиент купит только один стакан кваса и заплатит купюрой по 5, 10 или 20 рублей. Вы же должны дать сдачу каждому клиенту. Сначала у вас нет сдачи.
Необходимо определить сможете ли вы продать квас каждому клиенту!

Входные данные: bills - массив купюр, которые платит iй ребенок в очереди.

Вывод: true - если вы сможете расчитать каждого клиента, false - в противном случае.

Примеры:

[5, 5, 10, 10, 20]
Output: false

- первым 2м клиентам вы продадите квас, не давая сдачи, у вас будет 2 купюры по 5 рублей.

- следующим 2м клиентам вы дадите сдачу оставшимися купюрами в 5 рублей. У вас останется только 2 купюры по 10 рублей.

- последнему клиенту вы не сможете дать сдачу в 15 рублей.

Ответ - https://telegra.ph/Answer-11-15-2
Задача: Даны N комнат, все комнаты заперты, кроме первой. Нельзя войти в запертую комнату без ключа.

Однако когда вы заходите в комнату, вы можете найти в ней набор разных ключей. На каждом ключе есть номер, обозначающий, какую комнату он открывает. Можно использовать эти ключи, чтобы разблокировать следующие комнаты.

Необходимо проверить можно ли посетить все комнаты.

Входные данные: rooms[] - масств, где rooms[i] - набор ключей, которые вы можете получить, посетив комнату i. Нумерация комнат и ключей начинается с 0.

Вывод: true - если вы можете посетить все комнаты, false в противном случае.

Ответ - https://telegra.ph/Answer-11-26-2
Задача: Дана закодированная строка, необходимо вернить ее декодированную строку.

Правило кодирования: k [закодированная_строка], где закодированная_строка в квадратных скобках повторяется ровно k раз. k - строго положительное число.

Входные данные: входная строка валидна: нет лишних пробелов, правильные квадратные скобки. Также, полностью раскодированная строка не содержит цифр.

Вывод: расшифрованная строка.

Ответ - https://telegra.ph/Answer-12-01-3
Задача: цифровой корень натурального числа — это цифра, полученная в результате итеративного процесса суммирования цифр, на каждой итерации которого для подсчета суммы цифр берут результат, полученный на предыдущей итерации. Этот процесс повторяется до тех пор, пока не будет получена одна цифра.

Необходимо составить программу нахождения цифрового корня натурального числа.

Входные данные: N - натуральное число, где 0 <= N <= 10^9

Вывод: цифровой корень числа N

Ответ - https://telegra.ph/Answer-12-27-9
Задача: трансформировать строку по таким правилам:

1) Изменить регистр каждого символа, т.е. нижний регистр в верхний регистр, верхний регистр в нижний регистр. (например 'FizzBuzz'--> 'fIZZbUZZ');
2) Изменить порядок слов на обратный ( например 'pen pinapple apple PEN' --> 'pen APPLE PINAPPLE PEN').

Важно! Количество пробелов должно быть сохраненно.
Например, для строки 'js css html'
'HTML CSS JS' - неправильный вариант
'HTML CSS JS' - правильный вариант

Входные данные: строка, которая состоит из букв английского алфавита и пробелов.

Выходные данные: трансформированая строка.

Ответ - https://telegra.ph/Answer-01-07
Входные данные:
32-bit signed integer number

Выходные данные:
number с перевернутыми цифрами(строкой), либо '0'

Важно! Если изменение number приводит к тому, что значение выходит за пределы интервала [-2^31, 2^31 - 1], нужно вернуть '0'

Ответ - https://telegra.ph/Answer-01-17-6