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