JavaScriptで2つの数値の桁距離を求める方法
本記事では、2つの数値 a と b を引数として受け取り、それらの「桁距離」を返すJavaScript関数の実装方法を解説します。
桁距離とは
桁距離とは、2つの数値の対応する各桁同士の差の絶対値を合計したものです。
例として、次の2つの数値を考えてみましょう。
345
678
この場合の桁距離は、以下のように計算されます。
|3-6| + |4-7| + |5-8| = 3 + 3 + 3 = 9
コード例
実際のコードは以下のとおりです。
const num1 = 345;
const num2 = 678;
const digitDistance = (a, b) => {
const aStr = String(a);
const bStr = String(b);
let diff = 0;
for(let i = 0; i < aStr.length && i < bStr.length; i++){
diff += Math.abs(+(aStr[i] || 0) - +(bStr[i] || 0));
};
return diff;
};
console.log(digitDistance(num1, num2));
コードの解説
String()を使って数値を文字列に変換し、インデックスで各桁にアクセスできるようにしています。forループで両方の文字列を先頭から順に走査し、同じ位置にある桁同士を比較します。Math.abs()で差の絶対値を求め、変数diffに加算していきます。- 片方の数値の桁が存在しない場合は、
|| 0によってその桁が 0 として扱われるため、桁数が異なる数値にも対応できます。
出力結果
コンソールには以下が出力されます。
9
-
JavaScriptで[1,2]+[3,4]が「1,23,4」になる理由を解説
JavaScriptの+演算子は、数値同士の加算、または文字列同士の連結に使用されます。しかし、配列を結合して新しい配列を作りたい場合には、concat()メソッドを使う必要があります。 配列の結合にはconcat()メソッドを使う 例えば、次のように2つの配列を結合できます。 [50, 70].concat([90, 100]) 上記のコードを実行すると、以下のような結果が出力されます。 [50, 70, 90, 100] [1,2]+[3,4]が「1,23,4」になる仕組み では、なぜ[1,2] + [3,4]が「1,23,4」という文字列になってしまうのでしょうか。その理由は、+演算子は
-
JavaScriptの数値(Number)の基本と実践サンプルコード
JavaScriptでは、整数も小数もすべて「Number」型として扱われます。この記事では、数値変数の定義方法と、それらを使った簡単な演算の例を、動作するHTMLサンプルコードとともに紹介します。サンプルコード以下は、JavaScriptで数値を扱う基本的な例です。整数(22、99)と小数(1.523)を変数に格納し、ボタンをクリックすると画面に表示する仕組みになっています。<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co