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

【JavaScript】ランダムな小文字アルファベットで文字列をパディングして指定の長さに揃える方法

今回は、文字列数値という2つの引数を受け取る関数を作成する方法を解説します。文字列の長さは、常に引数で渡された数値以下であることが保証されているものとします。

この関数の目的は、文字列の末尾にランダムな小文字アルファベットを1文字ずつ追加していき、全体の長さが指定された数値とちょうど一致するようにすることです。そして、パディング後の新しい文字列を返します。

実装例

それでは、実際のコードを見ていきましょう。ここでは再帰呼び出しを使って、目標の長さに達するまでランダムな文字を追加し続けるシンプルなアプローチを採用しています。

const padString = (str, len) => {
   if(str.length < len){
      const random = Math.floor(Math.random() * 26);
      const randomAlpha = String.fromCharCode(97 + random);
      return padString(str + randomAlpha, len);
   };
   return str;
};
console.log(padString('abc', 10));
console.log(padString('QWERTY', 10));
console.log(padString('HELLO', 30));
console.log(padString('foo', 10));

コードの仕組み

このコードのポイントは以下の通りです。

Math.random() × 26: 0以上26未満のランダムな数値を生成し、Math.floor()で切り捨てることで0〜25の整数を取得します。
String.fromCharCode(97 + random): 文字コード97は「a」に対応するため、97に0〜25の値を加えることで「a」〜「z」のいずれか1文字を生成できます。
再帰処理: 文字列の長さが目標に届くまで、自分自身を呼び出してランダムな文字を末尾に追加し続けます。条件を満たした時点でその文字列をそのまま返します。

出力結果

コンソールへの出力は以下のようになります(ランダムな文字のため、実行ごとに結果は異なります)。

abckoniucl
QWERTYcwaf
HELLOdnulywbogqhypgmylqlvmckhg
Foofhfnhon

このように、元の文字列の後にランダムな小文字アルファベットが付加され、指定した長さの文字列が生成されていることが確認できます。元の文字列がすでに指定の長さに達している場合は、何も変更されずそのまま返されます。

  1. JavaScriptで指定した文字数に文字列を切り詰める方法

    JavaScriptでは、長いテキストを一覧表示やプレビュー用に短く表示したい場面がよくあります。この記事では、文字列と数値を受け取り、指定された文字数を超える場合は文字列を切り詰めて末尾に「...」を付けて返す関数の実装方法を解説します。要件作成する関数は、文字列と数値の2つの引数を受け取ります。文字列の長さが指定された数値より大きい場合は、先頭から指定文字数分だけ切り取った文字列に「...」を連結して返します。切り詰める必要がない場合(元の文字列が指定文字数以下の場合)は、元の文字列をそのまま返します。コード例以下がその実装コードです。 { const { length: len

  2. JavaScriptで文字列内のアルファベットだけを反転する方法

    問題の概要JavaScriptで、アルファベットといくつかの特殊文字(記号)が混在する文字列 str を受け取る関数を作成することを求められています。この関数は、入力文字列をもとに新しい文字列を返します。その際のルールは次のとおりです。アルファベット以外の文字(記号・数字など)は、元の位置にそのまま留まります。アルファベットの文字だけが、互いに反転した位置へ移動します。入力例と出力例たとえば、関数への入力が以下だった場合を考えてみましょう。入力const str = k_lmn_opq;出力const output = q_pon_mlk;「_」という記号は位置が変わっておらず、アルファベット