我试图找到最简洁的方法来从由变量确定的给定文件中选择和调用方法。要记住的条件是:
用户将调用数据库,数据库将返回 10 个不同变量之一。
每个变量都会有一个特定的文件。
每个文件内部都有 5 个方法,在不同的文件中都具有相同的名称,但调用不同的 api。
我想过做类似的事情
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
值调用特定模块。
实现此目的的另一种方法是根据 fruit
值简单地动态 require
模块:
const fruit = (SELECT fruit WHERE name = user_input);
const module = require('./vars/' + fruit);
const fruitInfo = module.getNutritionalInfo();
关于javascript - 替代 if..else 来确定要调用哪个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60967785/