JavaScriptのMath.log()で対数の底を指定する方法
JavaScriptのMath.log()メソッドは、デフォルトでは自然対数(底がe)を計算します。任意の底を持つ対数を求めたい場合は、数学の底の変換公式「logb(x) = ln(x) / ln(b)」を利用します。つまり、Math.log(x)を求めたい底の対数で割ることで、任意の底の対数を計算できます。
底の変換の基本式
たとえば、常用対数(底が10)を求める場合は、次のように記述します。
Math.log(x) / Math.LN10
Math.LN10は、10の自然対数(約2.302)を表す組み込み定数です。この値で割ることで、底が10の対数が得られます。
サンプルコード
以下のコードは、Math.log()に底を指定して、100の常用対数を求める例です。
<html>
<head>
<title>JavaScript Math log() Method</title>
</head>
<body>
<script>
var value = Math.log(100)/Math.LN10;
document.write("Value : " + value );
</script>
</body>
</html>
実行結果
Value : 2
10を2乗すると100になるため、底10の対数は2となります。
任意の底を指定する汎用的な方法
底が10以外の場合も、同じ考え方で計算できます。たとえば、底が2の対数は以下のように求められます。
Math.log(8) / Math.log(2); // 結果: 3
なお、ES2015(ES6)以降の環境では、底10の対数を直接返すMath.log10()や、底2の対数を返すMath.log2()も利用できます。古いブラウザなど対応環境が限られる場合は、上記の底の変換公式を使う方法が確実です。
-
JavaScriptでオブジェクトにreduceメソッドを適用する方法
JavaScriptのreduce()メソッドは本来配列向けのメソッドのため、オブジェクトにそのまま適用することはできません。そこで、Object.values()メソッドを使ってオブジェクトの値を配列として取り出し、その配列に対してreduce()を適用します。 以下は、JavaScriptでオブジェクトの値にreduceメソッドを適用するコード例です。 コード例 <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content
-
JavaScriptのループを停止する方法|clearInterval()の使い方を解説
JavaScriptでsetInterval()によって繰り返し実行されている処理(ループ)を停止したい場合は、clearInterval()を使用します。setInterval()は指定した間隔ごとに関数を繰り返し呼び出すメソッドですが、そのままでは無限に処理が続いてしまいます。そこで、あらかじめ戻り値として取得したタイマーIDをclearInterval()に渡すことで、ループを任意のタイミングで止めることができます。コード例以下は、一定回数スクロール処理を繰り返した後にループを停止するサンプルコードです。<!DOCTYPE html> <html lang="