Javascript 是否为数组中的不同元素运行不同的函数?

Javascript 是否为数组中的不同元素运行不同的函数?,javascript,Javascript,假设您有这样一个数组和相应的函数: let myArray = ['foo','bar','zoomba','foo']; doThings(myArray[1]); 您需要一个函数,根据字符串参数是“foo”、“bar”还是“zoomba”运行三个不同函数中的一个 function doThings(myInput) { if (myInput === 'foo'){ // run a nested function related to 'foo' } els

假设您有这样一个数组和相应的函数:

let myArray = ['foo','bar','zoomba','foo'];

doThings(myArray[1]);
您需要一个函数,根据字符串参数是“foo”、“bar”还是“zoomba”运行三个不同函数中的一个

function doThings(myInput) {
   if (myInput === 'foo'){
     // run a nested function related to 'foo'
   }
   else if (myInput === 'bar') {
     //run a nested function related to 'bar'
   } // etc etc
 }

除了字符串之外,我们没有其他选择了吗?如果在一起,是否有更好的方法将不同的函数或代码块与我们可能从数组甚至键值对返回的内容相匹配?

您可以将名称用作键:

function handle_foo() {}
function handle_bar() {}
function handle_zoomba() {}

var functions = {
    foo: handle_foo,
    bar: handle_bar,
    zoomba: handle_zoomba
};

function doThings(myInput) {
    var handle = functions[myInput];
    if (handle) {
        handle()
    }
}