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

JavaScriptで文字列内の単語を長さの昇順に並べ替える方法

今回は、文字列を受け取り、各単語を文字数(長さ)が短い順に並べ替えた新しい文字列を返すJavaScript関数を作成してみましょう。

このような処理は、split()メソッドで文字列を単語ごとに分割し、sort()メソッドで長さを比較しながら並べ替え、最後にjoin()メソッドで再び結合することで簡単に実現できます。

実装コード例

以下が実際のコードです。

const str = 'This is a sample string only';
const arrangeByLength = str => {
    const strArr = str.split(' ');
    const sorted = strArr.sort((a, b) => {
        return a.length - b.length;
    });
    return sorted.join(' ');
};
console.log(arrangeByLength(str));

コードの解説

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

1. str.split(' '):元の文字列をスペース区切りで分割し、単語の配列を作成します。
2. sort((a, b) => a.length - b.length):比較関数を使って、単語の長さが短いものから順に並べ替えます。
3. sorted.join(' '):並べ替えた配列をスペースで連結し、1つの文字列に戻します。

出力結果

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

a is This only sample string

このように、1文字の「a」から始まり、徐々に長い単語へと並べ替えられていることが確認できます。なお、同じ長さの単語が複数ある場合は、元の配列内での順序が維持されるかどうかは環境依存となるため、厳密な安定ソートが必要な場合は注意してください。

  1. MySQLで数字を含む文字列を正しく並べ替える方法(ORDER BY・SUBSTR・CAST活用)

    はじめにMySQLでは、文字列型のカラムに「A10」「A30」のような数字が混ざったデータが格納されている場合、通常の ORDER BY だけでは文字コード順にソートされるため、「A10、A11、A12…」という数値として自然な順序になりません。この問題を解決するには、ORDER BY 句と SUBSTR() 関数、さらに CAST() 関数を組み合わせます。以下がその基本構文です。SELECT * FROM yourTableName ORDER BYSUBSTR(yourColumnName FROM 1 FOR 2),CAST(SUBSTR(yourColumnName FROM 2)

  2. 文の単語を文字数の昇順にソートするJavaプログラム

    文を構成する複数の単語を、文字数の昇順(短い順)に並べ替えたい場合、Javaでは挿入ソートを利用して簡単に実装できます。ここでは、実際のコード例とともにその仕組みを詳しく解説します。 サンプルコード import java.util.*; public class Demo{    static void sort_elements(String []my_str, int n){       for (int i=1 ;i<n; i++){          String temp =