亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何根據變量內容運行相應函數?

如何根據變量內容運行相應函數?

侃侃爾雅 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條經驗 獲得超8個贊

我來舉個例子,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 關注
  • 536 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號