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

JavaScriptで文字列内の最長の単語を検索する方法

文字列から最長の単語を見つけるJavaScript関数

文字列を唯一の引数として受け取り、その文字列を走査して最も長い単語を見つけて返すJavaScript関数を作成する方法を解説します。

入力文字列が以下の場合を考えてみましょう。

const str = 'Coding in JavaScript is really fun';

この場合、出力は次のようになります。

const output = 'JavaScript';

コード例

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

const str = 'Coding in JavaScript is really fun';
const findLongest = (str = '') => {
   const strArr = str.split(' ');
   const word = strArr.reduce((acc, val) => {
      let { length: len } = acc;
      if(val.length > len){
         acc = val;
      };
      return acc;
   }, '');
   return word;
};
console.log(findLongest(str));

出力

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

JavaScript

コードの解説

この関数がどのように動作するのか、順を追って見ていきましょう。

  • split(' '): 文字列をスペースで区切り、単語の配列に変換します。
  • reduce(): 配列の各単語を順番に処理し、これまでに見つかった最長の単語を累積値(acc)として保持します。
  • 現在の単語の長さが累積値の長さより大きければ、累積値を現在の単語で置き換えます。
  • 最終的に、最も長い単語が呼び出し元に返されます。

別のアプローチ

sort()を使う方法

単語を長さの降順にソートし、先頭の要素を取得する方法もあります。

const findLongest = (str = '') => {
   return str.split(' ').sort((a, b) => b.length - a.length)[0];
};
console.log(findLongest('Coding in JavaScript is really fun'));

この方法は非常に簡潔ですが、配列全体をソートするため、単語数が多い場合はreduce()を使う方法よりもパフォーマンスが劣る可能性があります。

for...ofループを使う方法

より直感的に理解しやすいfor...ofループを使った実装例です。

const findLongest = (str = '') => {
   let longest = '';
   for (const word of str.split(' ')) {
      if (word.length > longest.length) {
         longest = word;
      }
   }
   return longest;
};
console.log(findLongest('Coding in JavaScript is really fun'));

まとめ

文字列から最長の単語を検索するには、split()で文字列を単語の配列に分割し、reduce()やループ処理で最長の単語を特定するのが基本的なアプローチです。コードの可読性とパフォーマンスのバランスを考慮し、目的に合った方法を選択しましょう。

  1. JavaScriptで文字列内の最長の母音部分文字列の長さを求める方法

    問題 文字列を引数として受け取るJavaScriptの関数を作成する必要があります。この関数は、母音(a、e、i、o、u)のみで構成される連続した部分文字列の中から、最も長いものの長さを返さなければなりません。 アプローチ この問題は、文字列を先頭から順番に走査しながら、現在連続している母音の数をカウントすることで解決できます。具体的な手順は以下の通りです。 cur:現在連続している母音の数を記録するカウンター変数 max:これまでに見つかった最長の母音連鎖の長さを保持する変数 走査中の文字が母音であれば cur を1増やし、max より大きければ max を更新する 子音に遭遇した場合は

  2. JavaScriptで文字列内の特定文字の最大連続出現回数を求める方法

    本記事では、JavaScriptを使って「文字列の中である1文字が連続して出現する最大回数」を求める方法を解説します。アルゴリズムの考え方から実際のコード、実行結果まで、初心者にもわかりやすく説明していきます。 問題 次のようなJavaScript関数を作成することを目標とします。 第1引数として文字列を受け取る 第2引数として1文字を受け取る その文字が文字列内で連続して出現した最長の回数を数え、返す コード例 以下がその実装コードです。 {     const arr = str.split();