somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Javascript】文字列からランダムで1文字を取得する

Javascriptで文字列からランダムで1文字を取得する方法のメモです。

1文字取得する

文字列のn番目を取得するには以下のようにします。

var target = 'あiう';
console.log(target[0] + target[1] + target[2]); // => あiう 

配列のようにn-1番目を指定します。上記の場合、日本語が混じっていますが問題なく取得できました。

ランダムに取得する

1文字取得するから分かるように、文字数が3であることが分かります。これと下記を利用してランダムに取得するようにします。

Math.random()

これにより、0~1未満の数値を取得できます。この数値に文字数をかけると0~文字数未満の数値を取得できます。小数部を切り捨てるか、整数にキャスト・パースすることでランダムなindexの作成完了です。

おまけ

ランダムな文字列を複数したい場合、取得したい数が0になるまでデクリメントすれば問題ありません。また、数字でない値を指定された場合でも、デクリメントしたときにNaNとなるので、繰り返し条件を満たさなくなり無限ループになることもありません。phpの場合、aをインクリメントしてbになるこので、区別のためにメモしておきました。