Домашнее задание по JavaScript 3. Объекты

Задача №1. Объединение объектов

Написать функцию, которая на вход будет принимать два объекта и будет возвращать результирующий объект со всеми свойствами входящих объектов. Если есть одинаковые свойства в обоих объектах, то берется значение из второго. Значения всех свойств - примитивы.

Задача №2. Самые старые

Имеется информация о спортсменах в виде массива объектов с полями "имя" и "возраст" ([{name:"Yan", age: 33}, ...]). Написать функцию, которая вернет массив из имен N самых старых спортсменов.

var sportsmen = [...];
function topOldest(menlist, limit) {
  // ...
}
console.log(topOldest(sportsmen, 3));

Задача №3. Награждение

Есть данные о спортсменах, информация о каждом спортсмене хранится в своей переменной типа "объект". Необходимо написать функцию, которая будет принимать 3 параметра: спортсмена, тип медали (строка) и количество медалей (целое положительное число). При запуске этой функции у спорстмена должно увеличиться количество медалей указанного типа на заданное число. Информация о типе и количестве медалей хранится в свойствах внутреннего объекта medals объекта спортсмена. Следует учесть, что в у спортсмена до запуска функции может не быть медалей заданного типа или не быть медалей вообще. Примерный результирующий вывод в консоль приведен ниже:

>runner.medals
undefined
>give(runner, 'gold', 1);
>runner.medals
{gold:1}
>give(runner, 'gold', 2);
>runner.medals
{gold:3}

Задача №4. Спамер консоли

Создать объект spammer с двумя методами startSpam и stopSpam. При передаче методу startSpam некой строки он каждую секунду выводит в консоль (console.log) эту строку. При повторном запуске с другой строкой первая строка продолжает выводиться, а новая строка выводится отдельным console.log. Запуск метода stopSpam с параметром в виде строки находит эту строку среди выводимых в консоль и останавливает "спам" этой строки. Примерный результирующий вывод в консоль с расшифровкой по времени приведен ниже:

>spammer.startSpam('first');
first // 00:00:01
first // 00:00:02
>spammer.startSpam('second');
first // 00:00:03
second // 00:00:03
first // 00:00:04
second // 00:00:04
>spammer.stopSpam('first');
second // 00:00:05
second // 00:00:06

Задача №5. Улучшатор текста

Написать функцию, которая на вход будет принимать тектовую строку и будет возвращать "улучшенный" текст: буквы должны комбинировать регистр в произвольном порядке, а после каждого слова должен быть один из смайлов: :) ;) (: :p :D :-*. Строка на входе содержит только буквы русского алфавита и некоторые знаки препинания (. , ? ! ;). Примерный результирующий вывод в консоль приведен ниже:

>beautify("Всем привет, как дела?");
ВСеМ(: пРивЕт:D, КаК;) ДеЛа(:?
		

Задача №6. Только брутфорс

Имеется зашифрованный пароль (например, "YTFiMmMz") и извесна функция шифрования btoa. Извесно, что пароль имеет длину от 1 до 6 символов и состоит из цифр и букв a, b, c, не начинается с нуля. Написать функцию, которая с помощью последовательного перебора найдет пароль. Функцию btoa считаем "необратимой", т.е. использовать atob нельзя.

var password = "YTFiMmMz";
function bruteForce(psswrd) {
  // ...
  var encodedVariant = btoa(variant);
  // ...
}
console.log(bruteForce(password));

Указания по выполнению задания

Ссылка на полную версию этой страницы