如何根据输入动态选择对象执行指定操作?
更动态的对象选择实现方式
你可以用对象映射的方式替代冗余的if-else判断,这种方法更简洁、扩展性更强:
步骤1:创建对象映射表
先把输入字符串和对应的操作对象关联起来,形成一个映射对象:
// 建立输入字符串与目标对象的映射 const objMap = { obj1: Obj1, obj2: Obj2, obj3: Obj3 };
步骤2:动态获取对象并执行操作
根据输入直接从映射表中取出目标对象,再执行统一的逻辑:
// 获取目标对象 const targetObj = objMap[input]; // 检查对象是否存在,避免报错 if (targetObj) { targetObj.indexOf(value) === -1 ? do_something() : do_something_else(); } else { // 处理输入不合法的情况 console.log("输入的对象名称无效"); }
优势说明
- 后续如果需要新增对象(比如Obj4),只需要在
objMap里添加一行键值对即可,不用修改条件判断逻辑 - 代码结构更清晰,减少重复代码
另外需要注意:普通JavaScript对象本身没有indexOf方法,如果你的Obj1/Obj2/Obj3实际是数组,这段代码可以正常运行;如果确实是对象,你可能需要调整判断逻辑(比如检查对象是否包含某个属性)。
内容的提问来源于stack exchange,提问作者pileup
相关产品推荐
相关产品推荐

