Отследить одновременное нажатие
важность: 5
Создайте функцию runOnKeys(func, code1, code2, ... code_n), которая запускает func при одновременном нажатии клавиш с кодами code1, code2, …, code_n.
Например, код ниже выведет alertпри одновременном нажатии клавиш "Q" и "W" (в любом регистре, в любой раскладке)
runOnKeys(
() => alert("Привет!"),
"KeyQ",
"KeyW"
);
Необходимо использовать два обработчика событий: document.onkeydown и document.onkeyup.
Создадим множество pressed = new Set(), в которое будем записывать клавиши, нажатые в данный момент.
В первом обработчике будем добавлять в него значения, а во втором удалять. Каждый раз, как отрабатывает keydown, будем проверять – все ли нужные клавиши нажаты, и, если да – выводить сообщение.