簡體   English   中英

Javascript-評估“ x(y)”?

[英]Javascript - Evaluate “x(y)”?

因此,例如,我要評估2(3)[等於6]。

var string = "2(3)";
var ans = eval(string);

我在Chrome控制台中輸入了上面的代碼,他們給了我以下錯誤消息: TypeError:number不是function

那么,如何使“ 2(3)”返回6? 謝謝。

您可以使用正則表達式在任意數字之間插入* ,然后在右方括號之間將字符串從2(3)轉換為2*(3)然后再將其通過eval()

var string = "2(3)",

    // Convert string to array (["2", "(", "3", ")"])
    array = string.split(''),

    ans;

// Insert * between digit and open bracket  (["2", "*", "(", "3", ")"])
array.splice(string.search(/\d\(/) + 1, 0, "*");

// Convert array back to string ("2*(3)")
string = array.join("");

// Run eval (6)
ans = eval(string);

console.log(ans);

JSFiddle演示

JavaScript不會那樣做。 但是,您可以做的是創建一個返回函數的函數。 第二個函數稱為閉包。 這很方便,因為它返回時會維護創建時所在的本地環境的副本。 因此,您將乘數參數傳遞給第一個函數,該函數返回一個函數。 該函數(閉包)在乘數調用它時評估您傳遞給它的參數。

更好的人比我解釋了閉包是什么

function times(multiplier) {
  return function (num) {
    return num * multiplier;
  }
}

var bySix = times(2);
var result = bySix(3); // 6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM