例如,我有以下字符串:在八進制的JavaScript式的計算
15+6
我想計算八進制,這種表達。所以我想得到:
23
js中是否有任何函數來支持這種情況?如果不是,計算八進制表達式的最佳方法是什麼?
例如,我有以下字符串:在八進制的JavaScript式的計算
15+6
我想計算八進制,這種表達。所以我想得到:
23
js中是否有任何函數來支持這種情況?如果不是,計算八進制表達式的最佳方法是什麼?
是的,您可以使用基數爲8的parseInt()
並將其轉換爲八進制數,然後再以Number#toString()
作爲基數。
請在這裏看看:Numbers and dates。八進制數的使用取決於嚴格模式。
document.write((parseInt(15, 8) + parseInt(6, 8)).toString(8) + '<br>');
可以使用減少,如果有很多計算來完成,或者@龔如心的答案...
var str = '15+6';
var res = str.split('+').reduce(function(a,b){
return a + parseInt(b, 8)
}, 0).toString(8)
console.log(res) // 23
如果表達式中不僅有「+」運算符會怎麼樣? 因爲我們可以使用正則表達式/ \ + | \ - /,但我們如何在計算時定義當前操作。 此外,我希望有更優雅的方式來計算表達式(不分裂) –
使用ES6
標準:
在ECMAScript 6中,通過在前綴「0o」的數字支持八進制數。
var result = 0o15 + 0o6;
document.write(result.toString(8));
爲什麼我們需要將其轉換爲字符串?我很困惑,爲什麼'parseInt(15,8)+ parseInt(6,8)'顯示'19' –
好吧,在'ES6'中它只是稍微另一個語法'0o15 + 0o6 == 19 && 0o15 + 0o6 = = 0o23' – isvforall