hw 11 - garevna/js-course GitHub Wiki

Homework

:briefcase: Обязательная часть
( :point_up: удовлетворительно )
Предварительная подготовка:

Создать файл с данными в формате JSON

Это должен быть массив объектов с двумя свойствами: title и ref

  • title - название картинки
  • ref - ссылка на картинку
Задание:
  • Загрузить данные из JSON-файла
  • Распарсить данные в массив
  • Вывести на страницу картинки и подписи к ним

:briefcase: Дополнительно
( :ok_hand: хорошо )
Исходные данные
var messages = [
    "backspace",
    "enter",
    "shift",
    "control",
    "delete",
    "space",
    "subtract"
]

messages.getKey = () => {
    let key = new Date().toLocaleTimeString(), x = 0
    while ( log [ `${key}[${x}]` ] ) { x++ }
    return `${key}[${x}]`
}

var log = {}
sendMessage
var sendMessage = message => new Promise (
    resolve => setTimeout (
        () => resolve ( message ),
        Math.random () * 7000
    )
)

Задача: напилить код, который вызывает функцию sendMessage для каждого элемента массива messages и логирует полученные сообщения в объекте log следующим образом:

log
{
    22:25:57: "backspace"
    22:25:58: "shift"
    22:25:59: "subtract"
    22:25:59[2]: "enter"
    22:25:59[3]: "delete"
    22:26:01: "control"
    22:26:01[2]: "space"
}

:briefcase: Дополнительно
( :thumbsup: отлично )

Изменим условие предыдущего задания

Массив messages, объект log и функция sendMessage остаются теми же

Немного изменится метод getKey:

messages.getKey = () => new Date().toLocaleTimeString()

Нужно напилить код рекурсивной функции recursive, которая вызывает sendMessage поочередно с каждым элементом массива messages, но только после того, как предыдущий месседж будет залогирован в объекте log

var sendAll = () => {
    var index = 0
    function recursive () {
        ...
    }
    recursive ()
}

sendAll()

.