JavaScriptで数値を個々の桁に分割する方法
JavaScriptでは、剰余演算子(%)と除算を組み合わせることで、数値を個々の桁に簡単に分割できます。この記事では、各桁を取り出してその合計を求める基本的な方法を解説します。
基本的な実装例
以下のコードは、whileループを使って数値28573を1桁ずつ分解し、それぞれの桁の合計を出力する例です。
<!DOCTYPE html>
<html>
<body>
<script>
var a = 28573;
var sum = 0;
while(a > 0) {
sum += a % 10;
a = Math.floor(a / 10);
}
document.write("Sum of digits = " + sum);
</script>
</body>
</html>実行結果
Sum of digits = 25
コードの仕組み
a % 10:10で割った余りを求めることで、一番下の桁(1の位)を取得します。Math.floor(a / 10):数値を10で割って小数点以下を切り捨てることで、処理済みの桁を取り除きます。- この2つの処理を while ループ で繰り返すことで、すべての桁を順番に抽出し、合計を計算できます。
上記の例では、2 + 8 + 5 + 7 + 3 = 25 となるため、「25」が出力されます。
別の方法:文字列に変換するアプローチ
数値を文字列として扱いたい場合は、String() と split() を使う方法もあります。
var num = 28573;
var digits = String(num).split('').map(Number);
var sum = digits.reduce(function(a, b) { return a + b; }, 0);
document.write("Sum of digits = " + sum); // Sum of digits = 25こちらの方法では、各桁が配列として取得できるため、合計だけでなく最大値・最小値の検索など、さまざまな処理にも応用しやすいのが特徴です。
-
JavaScriptで数値の各桁の数字を一つずつ分割表示する方法
はじめに この記事では、ユーザーが入力した数値を検証し、有効な数値であればその各桁の数字を画面に一つずつ表示するJavaScriptプログラムの作り方を解説します。 動作イメージ ページ上のボタンをクリックすると入力ダイアログが開き、そこに数値を入力してOKを押すと、入力された数値の各桁が一行ずつ画面に出力される仕組みです。 例えば、入力が次のような場合—— 43354 画面には次のように表示されます。 4 3 3 5 4 完成コード HTML <!DOCTYPE html> <html> <head> &n
-
JavaScriptで数値の先頭n桁の合計を求める方法
今回は、2つの数値 m と n を引数として受け取るJavaScript関数を作成します。n は常に m の桁数以下であると仮定します。この関数の役割は、m の先頭から n 桁目までの各桁の数字を合計し、その結果を返すことです。問題の例たとえば、入力が次のような場合を考えてみましょう。const m = 5465767; const n = 4;このとき、出力は次のようになります。const output = 20;理由は簡単で、m の先頭4桁が「5, 4, 6, 5」であり、その合計は 5 + 4 + 6 + 5 = 20 となるためです。実装コードそれでは、実際のコードを見ていきましょう。