Испытание: Обьекты, массивы и циклы
Задание №1
Массивы (часть 1)

  1. Дан массив с элементами 'Привет, ', 'мир', '!'. Необходимо вывести на экран фразу 'Привет, мир!'.
  2. Ожидаемый результат:
var arr = ['Привет', 'мир', '!'];

// Выведет фразу 'Привет, мир!'
Задание №2
Массивы (часть 2)

  1. Дан массив ['Привет, ', 'мир', '!']. Необходимо записать в нулевой элемент этого массива слово 'Пока, ' (то есть вместо слова 'Привет, ' будет 'Пока, ')
  2. Ожидаемый результат:
// Выведет фразу 'Пока, мир!'
Задание №3
Объекты (часть 1)

  1. Создайте ассоциативный массив (объект) заработных плат obj. Выведите на экран зарплату Пети и Коли.
  2. Ожидаемый результат:
// У Коли будет "1000"
// У Пети будет "500"
Задание №4
Объекты (часть 2)

  1. Дан многомерный массив arr:
var arr = {
  'ru':['голубой', 'красный', 'зеленый'],
  'en':['blue', 'red', 'green'],
};
2. Выведите через цикл все слова свойства 'ru'.
3. Ожидаемый результат:
// голубой
// красный
// зеленый
Задание №5
Объекты (часть 3)

  1. Создайте объект с днями недели. Ключами в нем должны служить номера дней от начала недели (понедельник - первый и т.д.).
  2. Пусть теперь номер дня недели хранится в переменной day, например там лежит число 3. Выведите день недели, соответствующий значению переменной day
  3. Ожидаемый результат:
// Понедельник
Задание №6
Объекты (часть 4)

  1. Создайте двухмерный массив. Первые два ключа - это 'ru' и 'en'. Пусть первый ключ содержит элемент, являющийся массивом названий дней недели по-русски, а второй - по-английски. Выведите с помощью этого массива понедельник по-русски и среду по английски (пусть понедельник - это нулевой день).
  2. Ожидаемый результат:
// Понедельник
// Wednesday
Задание №7
Объекты (часть 5)

  1. Дана структура var obj = { a: 1, b: 2, c: 3, d: 4 };
  2. Выведите в консоль с помощью Object.keys() все ключи.
  3. Выведите в консоль с помощью Object.values() все значения.
  4. Ожидаемый результат:
// [a, b, c, d]
// [1, 2, 3, 4]
Задание №8
Приложение "Админ панель"

  1. Дана структура: var user = { username: 'admin', password: '1234' };
  2. Напишите функцию updateUsername которая изменяет свойство username. Имя не должно быть пустым.
  3. Напишите функцию updatePass которая изменяет свойство password. Пароль не должен быть пустым.
  4. Выведите в консоль обновленный объект.
  5. Ожидаемый результат:
var user = { 
    username: 'admin', 
    password: '1234' 
};

// Ваш код...

console.log(user.username); // Vasya
console.log(user.password); // 999
Задание №9
Приложение "Локализация"

  1. Дана структура: var user = { username: 'Ира' };
  2. Создайте объект ru в котором есть свойство hello со значение "Здравствуйте".
  3. Создайте объект en в котором есть свойство hello со значение "You are welcome".
  4. Создайте константу CURRENT_LOCALIZATION с любым из названием объектов.
  5. Ожидаемый результат:
// Здравствуйте, Ира!
// You are welcome, Ира!
Задание №10 (не обязательно)
Сравнение объектов

  1. Дан объект: var player = { x: 23, y: 92 };
  2. Дан объект: var steroid = { x: 23, y: 92 };
  3. Напишите функцию которая сравнивает два объекта на идентичность всех свойств. Если хотя бы одно свойство не равно другому, нужно вернуть false. Если все сходится true.
  4. Учтите что свойств в объектах может быть более двух. Некоторых свойств может вообще не существовать.
  5. Ожидаемый результат:
var player = { x: 23, y: 92 };
var steroid = { x: 23, y: 92 };
var steroid2 = { x: 20, y: 92 };
var steroid3 = { x: 23 };
var steroid4 = { y: 92, x: 23 };

// Ваш код...

console.log(isEqual(player, steroid)); // true
console.log(isEqual(player, steroid2)); // false
console.log(isEqual(player, steroid3)); // false
console.log(isEqual(player, steroid4)); // true
Критерии написания оптимальных циклов
  1. ✅ Своевременный выход из цикла: цикл не работает дольше чем нужно
  2. ✅ Количество вызовов циклов минимизировано
  3. ✅ Множественные DOM-операции производятся на элементах, которые не добавлены в DOM
Критерии единообразного кода
  1. ✅ Все функции объявлены единообразно
  2. ✅ Используется единый стиль именования переменных
  3. ✅ При использовании встроенного API, который поддерживает несколько вариантов использования, используется один способ
Критерии оптимального кода
  1. ✅ Константы, используемые внутри функций создаются вне функций и используются повторно через замыкания
  2. ✅ Поиск элементов по селекторам делается минимальное количество раз, после этого ссылки на элементы сохраняются
  3. ✅ Массивы и объекты, содержимое которых вычисляется, собираются один раз, а после этого только переиспользуются
Перед завершением задания убедитесь:
  1. ✅ Каждое выполненное задание соответствует требованиям.
  2. ✅ В консоли браузера нет ошибок.
  3. ✅ Выполнены все рекомендации из критериев.
Made on
Tilda