Задать вопрос
@Urukhayy

Какой вариант оптимальней и лучше?

Цель: вытащить нужное значение (по поступающим данным, см. дальше) из свойства numbers --> объекта obj.
Вариант первый:

Есть объект:
var obj = {
numbers: [42,33,24,89]
};

Нам посредством свойства keyCode поступает одна из четырех кнопок(вверх, вниз, вправо, влево). Нам надо вытащить значение массива, относящееся к кнопе как (40 = 0 ячейка, 39 = 1 ячейка, 38 = 2 ячейка, 37 = 3 ячейка --- соответственно вниз - 0 ячейка, вправо - 1 ячейка, вверх - 2 ячейка, влево - 3 ячейка).

window.addEventListener('keydown', function(event) {
var number = obj.numbers[40-event.keyCode];
});


Вариант второй:
var obj = {
numbers: { down: 42, right: 33, up: 24, left: 89 }
};


window.addEventListener('keydown', function(event) {
var number = obj.numbers[{ 37 : "left", 38 : "up", 39 : "right", 40 : "down" }[event.keyCode]];
});
  • Вопрос задан
  • 2169 просмотров
Подписаться 3 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@YemSalat
var obj = {
  key_42: 0,
  key_33: 1,
  key_24: 2,
  key_89: 3
};

document.addEventListener('keydown', function(evt) {
    return obj['key_' + evt.keyCode];
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы