広告スペース(バナー)
🟨JavaScript レッスン
基本文法の基礎8
データ構造とオブジェクト指向8
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 65 / 69

アナグラムかどうかを判定しよう

このレッスンでは、2つの単語がアナグラム(文字の並び替えで作れる関係)かどうかを判定する方法を学ぶことを目標にします。「JavaScript アナグラム 判定」で検索している方向けの内容です。

アナグラムとは、同じ文字を並び替えて作れる別の単語のことです(例: listen と silent)。両方の文字列の文字を並び替えて一致するか比べれば判定できます。文字の種類と個数が完全に一致していれば、並び替え方に関わらずアナグラムであると判定できるという性質を利用します。

サンプルコードでは、normalizeという関数の中で.toLowerCase().split("").sort().join("")という一連の処理により、大文字小文字を統一してから1文字ずつバラバラにし、アルファベット順に並び替えてからまた1つの文字列に戻しています。この「正規化」した2つの文字列が一致すればアナグラムです。

初心者がよくつまずくのが、大文字・小文字を区別せずに比較したい場合、事前に.toLowerCase()などで表記をそろえておく必要がある点です。表記のゆれをそろえずに比較すると、本来アナグラムであるはずの単語も違う文字列と判定されてしまいます。

文字列の並び順を無視して比較したいときに使える基本テクニックで、簡単な暗号解読ゲームやパズルアプリの実装にも応用できます。簡単な言葉遊びのようですが、文字列比較の実践的な練習として役立つ題材です。

JavaScript
OUTPUT / 実行結果

💡 console.log() の内容が実行結果に表示されます。

🎯
ここまでできればゴール達成!
単語の並び替え(アナグラム)を判定する、簡単な言葉遊びゲームが作れるようになります。
広告スペース(バナー)
広告スペース(記事内)