JavaScriptで数値の先頭の桁を交換した後の差の絶対値を求める方法
問題の概要
今回は、ちょうど2つの数値を含む配列を受け取るJavaScript関数を作成します。この関数の目的は、2つの数値の先頭の桁(最初の数字)同士を入れ替えた後、その数値の差の絶対値を返すことです。
例として、配列 [105, 413] を考えてみましょう。
- 105 の先頭の「1」と、413 の先頭の「4」を入れ替えます。
- すると、新しい数値はそれぞれ 405 と 113 になります。
したがって、求める差は以下のようになります。
|405 − 113| = 292
解決のアプローチ
この問題は、以下の手順で解決できます。
- 各数値を文字列に変換する(
String()を使用)。 - 両方の文字列の先頭の1文字を取り出す。
- 先頭の文字を互いに入れ替えて、新しい文字列を組み立てる。
- 新しい文字列を再び数値に変換し、
Math.abs()を使って差の絶対値を計算する。
コード例
以下が実際のコードです。
const arr = [105, 413];
const interchangedDigitDiff = (arr = []) => {
// 数値を文字列に変換
arr = arr.map(String);
const [first, second] = arr;
// 各数値の先頭の文字を取得
const fChar = first[0];
const sChar = second[0];
// 先頭の文字を入れ替えた新しい数値を作成
const newFirst = sChar + first.substring(1, first.length);
const newSecond = fChar + second.substring(1, second.length);
// 数値に戻して差の絶対値を計算
const newArr = [+newFirst, +newSecond];
const diff = Math.abs(newArr[0] - newArr[1]);
return diff;
};
console.log(interchangedDigitDiff(arr));コードのポイント
map(String): 配列内のすべての数値を一括で文字列に変換します。substring(1): 文字列の2番目以降の部分(先頭以外)を取り出します。- 単項プラス演算子(
+): 文字列を素早く数値へ変換します。 Math.abs(): 負の値にならないよう、差の絶対値を求めます。
実行結果
コンソールには以下の出力が表示されます。
292
このように、文字列操作と数値変換を組み合わせることで、桁の入れ替え処理をシンプルかつ効率的に実装できます。負の数や異なる桁数の数値にも対応できるため、さまざまなケースで応用可能です。
-
JavaScriptで数値の各桁の数字を一つずつ分割表示する方法
はじめに この記事では、ユーザーが入力した数値を検証し、有効な数値であればその各桁の数字を画面に一つずつ表示するJavaScriptプログラムの作り方を解説します。 動作イメージ ページ上のボタンをクリックすると入力ダイアログが開き、そこに数値を入力してOKを押すと、入力された数値の各桁が一行ずつ画面に出力される仕組みです。 例えば、入力が次のような場合—— 43354 画面には次のように表示されます。 4 3 3 5 4 完成コード HTML <!DOCTYPE html> <html> <head> &n
-
JavaScriptで2つの直方体の体積差を求める方法
問題JavaScriptで、2つの直方体(キューボイド)の長さ・幅・高さを指定する配列を受け取る関数を作成します。この関数は、それぞれの直方体の体積を計算し、その絶対差(差の絶対値)を返す必要があります。直方体の体積は「長さ × 幅 × 高さ」で求められるため、まず各直方体の体積を算出し、Math.abs()メソッドを使って2つの体積の差の絶対値を取得します。コード例以下が実際のコードです。const h1 = 10; const w1 = 12; const l1 = 15; const h2 = 12; const w2 = 15; const l2 = 9; const findVol