Я хочу вызвать разные функции в зависимости от ввода, который я нахожу. Если вход соответствует одной из клавиш, я хочу, чтобы вызвать соответствующую функцию - с некоторыми параметрами:Javascript: function as hash value
var commands = {
'key1': someFunction,
'key2': otherFunction
};
Клавиши строки и сделать его проще, я создал command_keys переменную:
var command_keys = Object.keys(commands);
Я определяю две функции дальше:
function someFunction(param) {
// do sth.
};
function otherFunction(param) {
// do sth. else
};
Тогда я проверить состояние ключа и вызова одной из функций в зависимости от того, какой ключ я нашел:
if (command_keys.indexOf(some_string) > -1) {
index = command_keys.indexOf(some_string);
commands[index](some_param);
}
Однако я получаю сообщение об ошибке:
Uncaught TypeError: commands[index] is not a function(anonymous function)
Спасибо за ваши идеи.
Что такое 'some_array'? Было бы лучше, если бы вы показали нам полный сценарий. –
Итак, если 'command_keys' является массивом, то' index' является целым числом, а 'commands' не имеет целочисленных ключей. – zerkms
@zerkms command_keys - это только ключи команд, например. Object.keys (команды); Я добавил это к вопросам. Правильно, клавиши команд - это строки, а some_array - это массив строк. – Randomtheories