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

配列や文字列メソッドを使わずにJavaScriptで整数の桁を反転する方法

JavaScriptでは、StringArray のメソッドに頼らなくても、数値演算だけで整数の桁を反転させることができます。この記事では、呼び出した数値の桁を逆順にした結果を返す Number.prototype.reverse() 関数の実装方法を解説します。

実装の考え方

目指すのは、次のような動作です。

234.reverse() → 432
6564.reverse() → 4656

桁を反転する基本のアイデアはシンプルです。元の数値を10で割った余り(最下位の桁)を取り出して新しい数値の末尾に追加し、残りの商に対して同じ処理を再帰的に繰り返します。あわせて負の数にも対応できるよう、符号の情報は計算前に別途保持しておきます。

コード例

const reverse = function(temp = Math.abs(this), reversed = 0, isNegative = this < 0){
    if(temp){
        return reverse(Math.floor(temp/10), (reversed*10)+temp%10, isNegative);
    };
    return !isNegative ? reversed : reversed*-1;
};
Number.prototype.reverse = reverse;
const n = -12763;
const num = 43435;
console.log(num.reverse());
console.log(n.reverse());

出力

コンソールには次のように表示されます。

53434
-36721

コードのポイント

  • temp: まだ処理していない残りの桁(絶対値)。10で割るたびに最下位の桁が1つずつ取り除かれます。
  • reversed: これまでに組み立てた反転済みの数値。現在の値を10倍してから余りを加えることで、桁をずらしながら新しい数字を末尾に追加していきます。
  • isNegative: 元の数値が負だったかどうかを示すフラグ。絶対値で計算を進めているため、最後に符号を付け直す際に使用します。

このように、文字列への変換を一切行わずとも、純粋な数値演算と再帰処理だけで、正負を問わず整数の桁を反転することができます。

  1. 【初心者向け】JavaScriptのreverse()メソッドで配列を逆順にする方法

    JavaScriptのreverse()メソッドは、配列の要素を元の順序と逆順に入れ替えるための便利な関数です。このメソッドを呼び出すと、配列の最初の要素が最後に、最後の要素が最初に移動し、配列全体が反転されます。reverse()メソッドの基本reverse()は配列そのものを変更する「破壊的メソッド」である点に注意してください。つまり、元の配列の順序が直接書き換えられます。元の配列を保持したい場合は、あらかじめslice()やスプレッド構文([...arr])などでコピーを作成してからreverse()を使用するのがおすすめです。サンプルコード以下は、ボタンをクリックすると配列の要素が逆順

  2. JavaScriptのオブジェクト配列に配列メソッドを適用する方法

    JavaScriptでは、オブジェクトが格納された配列に対しても、通常の配列と同じようにpop()、push()、splice()などの標準的な配列メソッドをそのまま使用できます。オブジェクト配列はあくまで「配列」であるため、要素としてオブジェクトが入っていても配列操作のAPIは共通で動作します。 コード例 以下は、JavaScriptオブジェクトの配列に対して配列メソッドを使用するサンプルコードです。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8