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

JavaScriptで各桁を降順に並べ替えて最大の数値を返す方法


問題

数値 n を引数として受け取る JavaScript 関数を作成する必要があります。この関数は、与えられた数値の各桁を降順に並べ替えた結果を返すものとします。つまり、数字を組み替えることで、作成可能な最大の数値を求めるという課題です。

解決策のコード例

以下がその実装コードです −

const num = 5423267;
const arrangeInDescending = (num = 1) => {
    const str = String(num);
    const arr = str.split('');
    arr.sort((a, b) => {
        return +b - +a;
    });
    const newStr = arr.join('');
    const res = Number(newStr);
    return res;
};
console.log(arrangeInDescending(num));

出力結果

コンソールには以下のように出力されます −

7654322

コードの解説

処理の流れは以下の通りです。

  • String() で数値を文字列に変換し、split('') によって1文字(1桁)ずつの配列に分割します。
  • sort() メソッドに比較関数 (a, b) => +b - +a を渡すことで、配列を降順にソートします。ここでは単項プラス演算子(+)を使い、文字列を数値に変換してから比較しているのがポイントです。
  • ソート後の配列を join('') で連結して文字列に戻し、最後に Number() で数値へ変換して返します。

このように、文字列化 → 分割 → ソート → 結合 → 数値化というシンプルな手順だけで、任意の整数の桁を降順に並べ替えた最大値を簡単に求めることができます。


  1. JavaScriptのNumber.MAX_VALUEとNumber.MIN_VALUEプロパティの使い方をわかりやすく解説

    JavaScript の Number.MAX_VALUE と Number.MIN_VALUE は、JavaScriptで扱える数値の上限と下限を示す静的プロパティです。この記事では、それぞれのプロパティが持つ値の意味と、実際に動作するサンプルコードを交えて詳しく解説します。 Number.MAX_VALUE・Number.MIN_VALUEとは? Number.MAX_VALUE は、JavaScriptで表現できる最大の数値(約1.7976931348623157 × 10308)を返します。一方、Number.MIN_VALUE は「最小の負の数」ではなく、ゼロに最も近い正の数(約5

  2. JavaScriptで数値の各桁の数字を一つずつ分割表示する方法

    はじめに この記事では、ユーザーが入力した数値を検証し、有効な数値であればその各桁の数字を画面に一つずつ表示するJavaScriptプログラムの作り方を解説します。 動作イメージ ページ上のボタンをクリックすると入力ダイアログが開き、そこに数値を入力してOKを押すと、入力された数値の各桁が一行ずつ画面に出力される仕組みです。 例えば、入力が次のような場合—— 43354 画面には次のように表示されます。 4 3 3 5 4 完成コード HTML <!DOCTYPE html> <html>   <head>   &n