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

Ссылка: @Portal_v_IT

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

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

РКН: clck.ru/3KHeYk
Download Telegram
Задача: дана строка, которая содержит перемешанное представление цифр 0-9. Необходимо вернуть цифры в порядке возрастания.

Входные данные: str - строка, содержащяя только прописные английские буквы, размер строки от 1 до 10^4.

Примечание: гарантируется, что строка валидная и содержит представление цифр 0-9.

Выходные данные: output - строка, содержащяя цифры 0-9.

Примеры:
str = “owoztneoer” (т.е. “zeroonetwo”)
Output: “012”
str = “fviefuro” (т.е. “fourfive”)
Output: “45”

Ответ - https://telegra.ph/Answer-08-25-4
У нас есть встроенный метод arr.filter(f) для массивов. Он фильтрует все элементы с помощью функции f. Если она возвращает true, то элемент добавится в возвращаемый массив.

Сделайте набор «готовых к употреблению» фильтров:

inBetween(a, b) – между a и b (включительно).

Пример: arr.filter(inBetween(3,6)) – выбирает только значения между 3 и 6 (включительно).

Ответ - https://telegra.ph/Answer-08-27-15
Задача: вы шпион и вам нужно отследить шифр, посланный с телефона. Вы знаете, что каждой цифре соответствует набор латинских букв, необходимо вывести всевозможные комбинации букв, ктр может представлять число. Сопоставление цифр с буквами смотрите на рисунке выше.

Входные данные: input - число представленное в виде строки, кол-во цифр числа от 0 до 4. Цифры от 2 до 9.

Вывод: список возможных шифров, представленных в виде латинских букв.

Ответ - https://telegra.ph/Answer-09-03-3
В простых случаях циклических ссылок мы можем исключить свойство, из-за которого они возникают, из сериализации по его имени.

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

Напишите функцию replacer для JSON-преобразования, которая удалит свойства, ссылающиеся на meetup .

Ответ - https://telegra.ph/Answer-09-06
Напишите функцию 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