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

JavaScriptで文字列を逆順(降順)にソートする方法

本記事では、小文字の文字列を受け取り、逆順(降順)に並べ替えるJavaScript関数の作成方法を解説します。つまり、「b」は「a」より前に、「c」は「b」より前に来るようにソートします。

期待する動作

例えば、入力文字列が以下の場合:

const str = "hello";

出力は次のようになります。

const output = "ollhe";

実装コード

以下がその実装例です。

const string = 'hello';
const sorter = (a, b) => {
    const legend = [-1, 0, 1];
    return legend[+(a < b)];
}
const reverseSort = str => {
    const strArr = str.split("");
    return strArr
    .sort(sorter)
    .join("");
};
console.log(reverseSort(string));

コードの解説

このコードの仕組みを順を追って見ていきましょう。

  • sorter関数:配列のsort()メソッドに渡す比較関数です。2つの文字を比較し、降順になるように -1、0、1 のいずれかを返します。
  • reverseSort関数:split("")で文字列を1文字ずつの配列に分解し、sort(sorter)で降順にソートした後、join("")で再び文字列に結合して返します。

出力結果

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

ollhe

よりシンプルな実装方法

実は、カスタム比較関数を使わなくても、sort()とreverse()を組み合わせれば、より簡潔に同じ結果を得られます。

const reverseSort = str => str.split("").sort().reverse().join("");
console.log(reverseSort('hello')); // "ollhe"

この方法では、まず通常の昇順でソートしてから、reverse()で配列を反転させています。コードが短く読みやすいため、実務ではこちらの書き方が好まれることも多いでしょう。用途や可読性の要件に応じて、両者の使い分けを検討してみてください。

  1. JavaScriptで配列の順序を逆にする方法(reverseメソッドの使い方)

    JavaScriptで配列の要素の順序を逆にするには、reverse()メソッドを使用します。このメソッドは配列の要素を反転させ、最初の要素が最後に、最後の要素が最初に移動します。 reverse()メソッドのポイント reverse()は元の配列そのものを書き換える(破壊的な)メソッドである点に注意しましょう。元の配列を残しておきたい場合は、あらかじめスプレッド構文などでコピーを作成してからreverse()を呼び出すか、ES2023で追加された非破壊的なtoReversed()メソッドを利用すると安全です。 サンプルコード 以下のコードを実行すると、配列の順序が逆になった結果を確認できます

  2. JavaScriptのconst宣言とは?再代入できない変数の基本と使い方を解説

    JavaScriptのconst宣言は、値を再代入することも後から再宣言することもできない変数を作成するための構文です。constはES2015(ES6)で導入されました。 const宣言の主な特徴 一度値を代入すると、別の値に再代入することはできません。 同じ名前の変数を同じスコープ内で再宣言するとエラーになります。 宣言時に必ず初期値を代入する必要があります。 ブロックスコープ({}内でのみ有効)を持ちます。 それでは、JavaScriptにおけるconst宣言の実際のコードを見ていきましょう。 サンプルコード <!DOCTYPE html> <html>