if..else 的替代方法,用于确定调用哪个文件

我试图找到最干净的方法来从由变量确定的给定文件中选择和调用方法。要记住的条件是:


用户将调用 db,db 将返回 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声明之外,还有什么方法可以处理这个问题。越简洁越好。


蛊毒传说
浏览 105回答 1
1回答

潇湘沐

据我了解,您必须根据查询结果动态选择要调用的模块。例如,您可以这样做: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它基本上创建了一个模块映射,然后您使用该值调用特定模块。实现这一点的另一种方法是简单地require根据fruit值动态模块:const fruit = (SELECT fruit WHERE name = user_input);const module = require('./vars/' + fruit);const fruitInfo = module.getNutritionalInfo();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript