JavaScriptでランダムな名前(英小文字列)を生成する関数の作り方
本記事では、数値 n を引数として受け取り、アルファベット小文字(a〜z)のみで構成された長さ n のランダムな文字列を返す JavaScript 関数を作成します。ユーザー名やテストデータの生成など、さまざまな場面で活用できる基本的なテクニックです。
サンプルコード
それでは、実際のコードを見てみましょう。
const num = 8;
const randomNameGenerator = num => {
let res = '';
for (let i = 0; i < num; i++) {
// 0〜25 のランダムな整数を生成
const random = Math.floor(Math.random() * 26);
// 文字コード 97('a')〜 122('z')に対応する1文字を連結
res += String.fromCharCode(97 + random);
}
return res;
};
console.log(randomNameGenerator(num));
実行結果
コンソールには次のように表示されます。
kdcwping
注意: これはあくまで出力の一例です。Math.random() は呼び出しごとに異なる値を返すため、実際に表示される結果は毎回変わります。
仕組みの解説
この関数は以下の手順で動作しています。
Math.random()は 0 以上 1 未満の乱数を返します。これに 26 を掛けると、0 以上 26 未満の数値が得られます。Math.floor()で小数点以下を切り捨てることで、0〜25 のランダムな整数になります。- 英小文字「a」の文字コードは 97 なので、
97 + random(つまり 97〜122)をString.fromCharCode()に渡すと、「a」〜「z」のいずれか1文字を取得できます。 - この処理をループで
n回繰り返し、生成した文字を連結して最終的な文字列として返します。
応用のヒント
大文字や数字を含めたい場合は、対象となる文字セットを配列にまとめておき、Math.floor(Math.random() * 配列.length) でインデックスをランダムに選ぶ方法が便利です。用途に合わせて文字種や長さを柔軟にカスタマイズしてみてください。
-
JavaScriptの関数プロトタイプとは?仕組みと使い方を解説
JavaScriptで作成されたすべての関数には、JavaScriptエンジンによって自動的にprototypeプロパティが追加されます。このprototypeプロパティはオブジェクトであり、デフォルトではconstructorプロパティを含んでいます。関数のプロトタイプには、以下のようにしてアクセスできます。functionName.prototypeコンストラクタ関数を使ってオブジェクトを生成する場合、このprototypeプロパティを活用することで、同じコンストラクタから作成された複数のオブジェクト間でメソッドやプロパティを効率的に共有することができます。これにより、各インスタンスごとに
-
JavaScriptでのメソッド借用:call()・apply()・bind()の使い方を解説
JavaScriptでは、call()、apply()、bind()という3つのメソッドを使うことで、あるオブジェクトが持つメソッドを別のオブジェクトが「借用」できます。これは、本来そのメソッドを持たないオブジェクトに対して、thisの参照先を差し替えてメソッドを実行できる便利なテクニックです。 3つのメソッドの違い call():引数をカンマ区切りで個別に渡し、即座に関数を実行します。 apply():引数を配列(または配列風オブジェクト)として渡し、即座に関数を実行します。 bind():thisを固定した新しい関数を返すだけで、即座には実行されません。返された関数は後から好きなタイミン