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

如何根据变量内容运行相应函数?

如何根据变量内容运行相应函数?

侃侃尔雅 2018-09-07 10:09:15
我写了几个函数 funA(x)、funB(x)、funC(x)、funD(x)、funE(x)、funF(x),我现在有个需求,根据某个参数str,实现不同的计算。比如当 str=‘abc’ 时,能执行 x→funA(x)→funB(x)→funC(x)→y ,当 str‘ace’ 时,能执行x→funA(x)→funC(x)→funE(x)→y 。function fun_abc(x){    var a = funA(x);    var b = funB(a);    var c = funC(b);    var y = c;         return y; }我知道可以写一个 switch 根据 str 做 case,跳到不同的 fun_XXX() 中,但是这样不灵活。我最终目的是希望有一个数组,数组中按顺序写着不同的函数名,调用时输入x,从数组中第一个元素对应的函数一直运行到最后一个函数,输出最终结果y。是否有其他办法能简写?或者能做到自由组合,比如直接根据变量执行同名函数,类似 funstr='abc' 时,运行类似 funstr(x) 执行的就是 function abc(x)?js 或 php 相关语法都可以。
查看完整描述

1 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

我来举个例子,eval太粗暴了。。。大兄弟来看看我这个

function run(str, param) {
  let handle = { a: a, b: b, c: c, d: d };  
  return str.split('').reduce((res, name) => handle[name](res), param);  function a(x) {    return x + '1';
  }  function b(x) {    return x + '2';
  }  function c(x) {    return x + '3';
  }  function d(x) {    return x + '4';
  }
}

run('acb',0); // "0132"

举个例子,类似思路可以自由发挥


查看完整回答
反对 回复 2018-10-22
  • 1 回答
  • 0 关注
  • 509 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信