为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蛊毒传说 2022-06-09 19:29:29
我试图找到最干净的方法来从由变量确定的给定文件中选择和调用方法。要记住的条件是:用户将调用 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声明之外,还有什么方法可以处理这个问题。越简洁越好。
查看完整描述

1 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

据我了解,您必须根据查询结果动态选择要调用的模块。例如,您可以这样做:


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();


查看完整回答
反对 回复 2022-06-09
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号