我想根据找到的输入调用不同的函数。如果输入与键之一匹配,我想调用相应的函数-使用一些参数:
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)
谢谢您的想法。
最佳答案
我认为您根本不需要command_keys
。仅commands
即可满足您在此处描述的内容。
var commands = {
'key1': someFunction,
'key2': otherFunction
};
var command = commands[some_string];
if (typeof command === 'function') {
command(some_param);
}
关于javascript - Javascript:用作哈希值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31898739/