Занимательные задачи JavaScript
788 subscribers
8 links
Ваша цель: решить задачу максимально изящно и просто. Предлагайте свои варианты решения в комментариях. Задачи выходят каждый день в 14.00.
Download Telegram
Задача 56
Генератор пароля

Напишите скрипт, который генерирует случайную строку заданного размера. В строке обязательно должны быть маленькие и большие латинские буквы, цифры и подчеркивание.
👍1🕊1
Задача 57
Адаптация ширины инпута

Дан инпут. Сделайте так, чтобы при вводе текста, если текст длиннее ширины инпута, ширина инпута увеличивалась так, чтобы текст в него поместился.
👍1🕊1
Задача 58
Подсчет стран в массиве объектов

Даны города и их страны следующей структуре:
let data = [
{
country: 'Россия',
city: 'Москва',
},
{
country: 'Беларусь',
city: 'Минск',
},
{
country: 'Россия',
city: 'Питер',
},
{
country: 'Россия',
city: 'Владивосток',
},
{
country: 'Украина',
city: 'Львов',
},
{
country: 'Беларусь',
city: 'Могилев',
},
{
country: 'Украина',
city: 'Киев',
},
];
Подсчитайте количество стран. В качестве результата получите объект, в котором ключами будут страны, а значениями - их количество.
👍2🕊1
Задача 59
Конвертация массива городов и стран

Дан список городов и их стран, хранящийся в следующей структуре:
let data = [
{
country: 'country1',
city: 'city11',
},
{
country: 'country2',
city: 'city21',
},
{
country: 'country3',
city: 'city31',
},
{
country: 'country1',
city: 'city12',
},
{
country: 'country1',
city: 'city13',
},
{
country: 'country2',
city: 'city22',
},
{
country: 'country3',
city: 'city31',
},
]

Напишите код, которой переделает структуру данных вот в такую:
{
'country1': [
'city11', 'city12', 'city13',
],
'country2': [
'city21', 'city22'
],
'country3': [
'city31', 'city32'
],
}
👍1🕊1
Задача 60
Конвертация массива дат

Дан список каких-то данных за определенные даты, хранящийся в следующей структуре:
let data = [
{
year: 2019,
month: 11,
day: 20,
data: ['массив данных']
},
{
year: 2019,
month: 11,
day: 21,
data: ['массив данных']
},
{
year: 2019,
month: 12,
day: 25,
data: ['массив данных']
},
{
year: 2019,
month: 12,
day: 26,
data: ['массив данных']
},
{
year: 2020,
month: 10,
day: 29,
data: ['массив данных']
},
{
year: 2020,
month: 10,
day: 30,
data: ['массив данных']
},
{
year: 2020,
month: 11,
day: 19,
data: ['массив данных']
},
{
year: 2020,
month: 11,
day: 20,
data: ['массив данных']
},
}

Напишите код, которой переделает структуру данных в структуру вида:
{
год1: {
месяц1: {
день1: [массив данных],
день2: [массив данных],
день3: [массив данных],
}
месяц2: {
день1: [массив данных],
день2: [массив данных],
день3: [массив данных],
}
}
год2: {
месяц1: {
день1: [массив данных],
день2: [массив данных],
день3: [массив данных],
}
месяц2: {
день1: [массив данных],
день2: [массив данных],
день3: [массив данных],
}
}
}
👍1🕊1
Задача 61
Разворачивание объекта с массивами

Дан список событий за определенные даты, хранящийся в следующей структуре:
{
'2019-12-29': ['name1', 'name3', 'name5', 'name7'],
'2019-12-30': ['name4', 'name8', 'name9'],
'2019-12-31': ['name2', 'name6'],
}

Напишите код, которой переделает структуру данных вот в такую:
[
{
date: '2019-12-29'
event: 'name1'
},
{
date: '2019-12-31'
event: 'name2'
},
{
date: '2019-12-29'
event: 'name3'
},
{
date: '2019-12-30'
event: 'name4'
},
{
date: '2019-12-29'
event: 'name5'
},
{
date: '2019-12-31'
event: 'name6'
},
{
date: '2019-12-29'
event: 'name7'
},
{
date: '2019-12-30'
event: 'name8'
},
{
date: '2019-12-30'
event: 'name9'
},
]
👍1🕊1
Задача 62
Конвертация дат с рабиением

Дана следующая структура:
{
'2019-12-31': 1,
'2019-12-30': 2,
'2019-12-29': 3,
'2019-11-28': 4,
'2019-11-27': 5,
'2018-12-31': 6,
'2018-12-32': 7,
}

Напишите код, которой переделает структуру данных вот в такую:
{
2019: {
12: {
31: 1,
30: 2,
29: 3,
},
11: {
28: 4,
27: 5,
}
},
2018: {
12: {
31: 6,
30: 7,
},
}
}
👍1🕊1
Задача 63
Следующее число Фибоначчи

Сделайте функцию, каждый новый вызов которой будет выдавать следующее число Фибоначчи.
👍1🕊1
Задача 64
Разбиение картинки

Дана картинка. Разбейте ее на N прямоугольников и перемешайте эти прямоугольники в случайном порядке.
👍1🕊1
Задача 65
Ссылки на блоки страницы

Дана фиксированная менюшка, ссылающаяся на определенные блоки страницы. Сделайте так, чтобы по мере прокрутки страницы, когда страница прокручена на определенном блоке, в меню выделялась соответствующая ссылка.
👍1🕊1
Задача 66
Подсчет элементов массива

Дан массив. Подсчитайте количество различных элементов в нем. В качестве результата верните объект, в котором ключами будут элементы массива, а значениями - их количество в массиве.
👍1🕊1
Задача 67
Самое популярное слово

Дан текст. Найдите самое часто встречающееся слово в этом тексте.
👍1🕊1
Задача 68
Число прописью

Дано некоторое число:
let num = 1234567890

Выведите это число прописью:
`
один миллиард двести тридцать четыре миллиона
пятьсот шестьдесят семь тысяч восемсот девяносто
`

Ваш код, конечно же, должен быть универсальным и работать для любых чисел в пределах миллиардов.
👍2🕊1
Задача 69
Число из прописи

Дано некоторое число прописью:
let str = `
один миллиард двести тридцать четыре миллиона
пятьсот шестьдесят семь тысяч восемсот девяносто
`

Преобразуйте эту пропись в нормальное число:
1234567890

Ваш код, конечно же, должен быть универсальным и работать для любых чисел в пределах миллиардов.
👍3🕊1
Задача 70
Группировка массива по первым буквам

Дан произвольный массив со словами, начинающимися на различные буквы, например, вот такой:
let arr = [
'axx', 'bxx', 'cxx',
'ayy', 'byy', 'cyy',
'azz', 'bzz', 'czz',
];

Преобразуйте этот массив в объект, в котором ключами будут первые буквы слов, а значениями массивы слов, начинающихся на эти буквы:
{
'a': [
'axx', 'ayy', 'azz',
],
'b': [
'bxx', 'byy', 'bzz',
],
'c': [
'cxx', 'cyy', 'czz',
],
}
👍1🕊1
Задача 71
Сортировка массива объектов

Дан массив объектов:
[
{
name: 'user3',
age: 31,
salary: 100,
},
{
name: 'user1',
age: 32,
salary: 300,
},
{
name: 'user2',
age: 33,
salary: 200,
},
]

Выполните сортировку этого массива по заданному полю (по имени, возрасту или зарплате).
👍2🕊1
Задача 72
Заданный знак числа Пи

Сделайте функцию, которая будет возвращать заданный знак числа Пи (например, тысячный знак).
👍1🕊1
Бесплатный курс по Python
Занятия в виде онлайн лекций
Лектор: Трепачёв Дмитрий, автор сайта code.mu
Начало: 1 апреля
Расписание: пн, чт в 20.15-21.00 по москве
Продолжительность: 8 лекций + 2 недели практики

Для записи вступите в следующий канал:
https://t.me/+8wzlnw2vrsIwODAy
Задача 73
Центральная ячейка таблицы

Дана прямоугольная HTML таблица с нечетным количеством рядов и колонок. По нажатию на кнопку выделите центральную ячейку этой таблицы.
👍1🕊1
Задача 74
Центральный квадратик таблицы

Дана прямоугольная HTML таблица с четным количеством рядов и колонок. По нажатию на кнопку выделите 4 центральных ячейки этой таблицы.
😁1🕊1👨‍💻1
Задача 75
Передвижение таблицы

Дана квадратная HTML таблица произвольного размера:
01 02 03 04
05 06 07 08
09 10 11 12
13 14 15 16

По клику на кнопку передвиньте ячейки таблицы по кругу:
16 01 02 03
04 05 06 07
08 09 10 11
12 13 14 15
👍1🕊1