Прошу помочь упростить код (js)

Рейтинг: 1Ответов: 1Опубликовано: 11.04.2015

Имеется функция, которая при отправке какой либо команды, получает ответ:

var
input = document.getElementById('main_input');
output = document.getElementById('main_output');

function enterCommand() {
  if (input.value in cList) cList[input.value]();
  else out('error:  ' + input.value, 'no');
  input.value = '';
  scroll();
}

cList выглядит следующим образом:

var cList = {
  command1: function () {
    out('command1');
  },
  command2: function () {
    out('command2');
  },
  command3: function () {
    out('command3');
  };
};

Все команды появляются в маленьком dive с id div_outputdiv_input команды вводятся)

В моем случае, команд для обработки будет очень много, и я не хочу для каждой из них писать отдельную функцию, тем самым расширяя код до невозможности. Я знаю, есть пример куда легче, но сам я не смогу разобраться. Помогите, пожалуйста, буду благодарен, если кто даст ответ.

Ответы

▲ 1

Как-то так, например

var cList = [ 'command1', 'command2', 'command3' ];

function enterCommand() {
  if (cList.indexOf(input.value) >= 0) {
    out(input.value);
  } else {
    out('error:  ' + input.value, 'no');
  }
  input.value = '';
  scroll();
}