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

【JavaScript】文字列の各文字を指定回数繰り返す方法を解説

本記事では、文字列と数値 n を引数として受け取り、元の文字列に含まれるすべての文字をそれぞれ n 回繰り返した新しい文字列を返す JavaScript 関数の実装方法を解説します。

要件の確認

たとえば、次のような文字列が与えられたとします。

const str = 'how are you';

ここで数値 n2 の場合、期待される出力は以下のとおりです。

const output = 'hhooww  aarree  yyoouu';

このように、スペースも含めた各文字が指定回数だけ繰り返されていることがわかります。

実装例

以下は、String.prototype.repeat() メソッドを活用したシンプルな実装例です。

const str = 'how are you';

const repeatNTimes = (str, n) => {
  let res = '';
  for(let i = 0; i < str.length; i++){
    // String.prototype.repeat() を使用して各文字を n 回繰り返す
    res += str[i].repeat(n);
  };
  return res;
};

console.log(repeatNTimes(str, 2));

出力結果

コンソールには次のように表示されます。

hhooww  aarree  yyoouu

別のアプローチ:map() を使った方法

for ループを使わず、配列メソッドを組み合わせてより簡潔に記述することもできます。

const repeatNTimes = (str, n) =>
  [...str].map(char => char.repeat(n)).join('');

console.log(repeatNTimes('how are you', 2));
// 出力: hhooww  aarree  yyoouu

スプレッド構文 [...str] で文字列を1文字ずつの配列に分解し、map() で各文字を n 回繰り返してから join('') で結合しています。こちらの方がモダンで可読性の高いコードと言えるでしょう。

まとめ

文字列の各文字を繰り返す処理には、標準組み込みの String.prototype.repeat() メソッドが非常に便利です。ループ構文でも配列メソッドでも実装可能なので、コードの目的やスタイルに合わせて選択してください。ただし、大量の文字列連結を行う場合はパフォーマンスへの影響も考慮し、必要に応じて Array.prototype.join() を活用するとよいでしょう。

  1. JavaScriptの文字列入門|定義方法から比較演算子までわかりやすく解説

    JavaScriptにおける文字列(String)は、他の多くのプログラミング言語と同様に、テキスト形式でデータを保持するデータ型です。Webアプリケーションにおいて文字列がよく使われる場面のひとつが、フォームからのユーザー入力の保持です。たとえば検索フォームでは、ユーザーが入力した検索キーワードは文字列として保存されます。 ユーザーが検索フォームに入力して送信すると、送信された文字列に対して比較操作が行われます。これは、一致する情報を見つけ出し、その結果をユーザーに返すためです。比較操作には「=」「==」「===」「」といったJavaScriptの演算子が使われ、これらは文字列が持つ値を比

  2. JavaScriptで文字列を真偽値(Boolean)に変換する方法

    JavaScriptでは、文字列が「true」というリテラルと一致するかどうかを比較演算子で判定することで、文字列を実質的に真偽値(Boolean)として扱うことができます。ここでは、==(緩い等価比較)と===(厳密等価比較)の2つの方法を使った具体例を紹介します。 サンプルコード <!DOCTYPE html> <html> <head> <style>     body {         font-family: &