Javascript if..else的替代选项,用于确定调用哪个文件
我试图找到一种最干净的方法,从一个由变量决定的给定文件中选择并调用一个方法。要记住的条件是: 用户将调用db,db将返回10个不同变量中的一个 每个变量都有一个特定的文件 每个文件内部都有5个方法,在不同的文件中都命名相同,但调用不同的api 我想做一些类似的事情Javascript if..else的替代选项,用于确定调用哪个文件,javascript,Javascript,我试图找到一种最干净的方法,从一个由变量决定的给定文件中选择并调用一个方法。要记住的条件是: 用户将调用db,db将返回10个不同变量中的一个 每个变量都有一个特定的文件 每个文件内部都有5个方法,在不同的文件中都命名相同,但调用不同的api 我想做一些类似的事情 import tomato = require('./vars/tomato') import apple = require('./vars/apple') import pear = require('./vars/pear')
import tomato = require('./vars/tomato')
import apple = require('./vars/apple')
import pear = require('./vars/pear')
fruit = (SELECT fruit WHERE name = user_input)
fruitInfo = fruit.getNutritionalInfo()
这怎么都没有达到预期的效果(尽管我并不感到惊讶)。除了一个if..else
或一个switch
语句之外,是否还有其他方法来处理此问题。越简洁越好
TIA据我所知,您必须根据查询结果动态选择要调用的模块。例如,您可以这样做:
const modules = {
tomato: require('./vars/tomato'),
apple: require('./vars/apple'),
pear: require('./vars/pear'),
};
const fruit = (SELECT fruit WHERE name = user_input);
const fruitInfo = modules[fruit].getNutritionalInfo();
它基本上创建了一个模块映射,然后使用fruit
值调用一个特定的模块
实现这一点的另一种方法是根据结果
值动态地要求
模块:
const fruit = (SELECT fruit WHERE name = user_input);
const module = require('./vars/' + fruit);
const fruitInfo = module.getNutritionalInfo();
据我所知,您必须根据查询结果动态选择要调用的模块。例如,您可以这样做:
const modules = {
tomato: require('./vars/tomato'),
apple: require('./vars/apple'),
pear: require('./vars/pear'),
};
const fruit = (SELECT fruit WHERE name = user_input);
const fruitInfo = modules[fruit].getNutritionalInfo();
它基本上创建了一个模块映射,然后使用fruit
值调用一个特定的模块
实现这一点的另一种方法是根据结果
值动态地要求
模块:
const fruit = (SELECT fruit WHERE name = user_input);
const module = require('./vars/' + fruit);
const fruitInfo = module.getNutritionalInfo();