[英]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);
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.