JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで2つの数値の桁距離を求める方法

本記事では、2つの数値 ab を引数として受け取り、それらの「桁距離」を返す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
  1. 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」という文字列になってしまうのでしょうか。その理由は、+演算子は

  2. JavaScriptの数値(Number)の基本と実践サンプルコード

    JavaScriptでは、整数も小数もすべて「Number」型として扱われます。この記事では、数値変数の定義方法と、それらを使った簡単な演算の例を、動作するHTMLサンプルコードとともに紹介します。サンプルコード以下は、JavaScriptで数値を扱う基本的な例です。整数(22、99)と小数(1.523)を変数に格納し、ボタンをクリックすると画面に表示する仕組みになっています。<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co