JavaScript文字列繰り返し解説
JavaScriptにおける文字列の繰り返し
JavaScriptでは、文字列を繰り返すための組み込みのメソッドであるrepeat()
を使用できます。このメソッドは、指定された回数だけ文字列を反復し、新しい文字列を返します。
構文
string.repeat(count);
- count
繰り返す回数。非負の整数である必要があります。 - string
繰り返したい文字列。
例
let str = "hello";
let repeatedStr = str.repeat(3);
console.log(repeatedStr); // Output: "hellohellohello"
このコードでは、str
変数に"hello"という文字列が格納されています。その後、repeat()
メソッドを使用して、str
を3回繰り返して新しい文字列を作成し、repeatedStr
変数に格納します。最後に、repeatedStr
の値を出力すると、"hellohellohello"が表示されます。
注意点
count
が0の場合、空の文字列が返されます。count
が負の値の場合、エラーが発生します。
JavaScriptで文字列を繰り返すコード例と解説
repeat()
メソッドを使ったシンプルな例
let str = "JavaScript";
let repeatedStr = str.repeat(3);
console.log(repeatedStr); // 出力: JavaScriptJavaScriptJavaScript
repeat()
メソッドは、指定した回数だけ文字列をコピーして、新しい文字列として返します。str.repeat(3)
の部分で、str
に格納された文字列"JavaScript"を3回繰り返しています。
繰り返し回数を動的に変える例
function repeatString(str, count) {
return str.repeat(count);
}
let result = repeatString("hello", 5);
console.log(result); // 出力: hellohellohellohellohello
- このように関数にすることで、異なる文字列や回数で繰り返し処理を行うことができます。
- 関数内で
repeat()
メソッドを使い、引数で渡された回数だけ文字列を繰り返します。 repeatString
という関数を作成し、繰り返したい文字列と回数を引数として受け取ります。
for
ループを使った繰り返し(repeat()
メソッドがない場合)
function repeatString(str, count) {
let result = "";
for (let i = 0; i < count; i++) {
result += str;
}
return result;
}
let result = repeatString("world", 4);
console.log(result); // 出力: worldworldworldworld
for
ループで指定した回数だけ、str
をresult
に連結していきます。repeat()
メソッドがない環境や、より細かい制御が必要な場合にfor
ループを使います。
応用例:文字列を一定の長さに揃える
function padStart(str, length, padString) {
while (str.length < length) {
str = padString + str;
}
return str;
}
let paddedStr = padStart("123", 5, "0");
console.log(paddedStr); // 出力: 00123
- 数字の桁数を揃えたい場合などによく使われます。
padStart
関数では、文字列の先頭に別の文字を繰り返し追加して、指定された長さになるようにします。
- 応用として、文字列の長さを調整したり、特定の文字で埋めたりすることができます。
for
ループを使うと、より柔軟な繰り返し処理が可能です。repeat()
メソッドは、文字列の繰り返しを簡単に行うための便利な方法です。
ポイント
- どちらの方法を使うかは、状況や好みのプログラミングスタイルによって選びましょう。
for
ループは、基本的なプログラミングの知識であり、様々な場面で活用できます。repeat()
メソッドは、ES6から導入された比較的新しい機能です。古いブラウザではサポートされていない場合があります。
repeat()
メソッドは、配列の要素を繰り返すのにも使用できます(Array.prototype.fill().join('')
など)。padEnd()
メソッドを使うと、文字列の末尾に文字を追加できます。
forループによる繰り返し
最も基本的な方法です。
function repeatString(str, count) {
let result = "";
for (let i = 0; i < count; i++) {
result += str;
}
return result;
}
- デメリット
- メリット
- 柔軟性が高い。
- 繰り返し処理中に他の処理を挟むことができる。
Arrayとjoinメソッドの組み合わせ
Array
のfill
メソッドで配列を作成し、join
メソッドで文字列に変換します。
function repeatString(str, count) {
return new Array(count).fill(str).join('');
}
- デメリット
- メリット
- 簡潔な記述で繰り返しができる。
高階関数reduceの利用
reduce
メソッドを用いて、初期値の空文字列に繰り返し文字列を結合していく。
function repeatString(str, count) {
return Array.from({ length: count }, () => str).reduce((acc, cur) => acc + cur, '');
}
- デメリット
- メリット
- 関数型プログラミングの考え方を活かせる。
reduce
メソッドの柔軟性を利用できる。
ES6テンプレートリテラルとスプレッド構文
ES6から導入された機能で、より簡潔に記述できます。
function repeatString(str, count) {
return [...Array(count)].map(() => str).join('');
}
- デメリット
- ES6以降の環境でしか使用できない。
- メリット
- モダンなJavaScriptらしい記述。
- 比較的簡潔。
どの方法を選ぶべきか?
- 関数型プログラミング
reduce
メソッド - 簡潔さ
Array
とjoin
、またはES6テンプレートリテラル - 柔軟性
for
ループ - 単純な繰り返し
repeat()
メソッドが最も簡単。
- どの方法を選ぶかは、コードの可読性や保守性なども考慮して決定しましょう。
- 性能面では、
repeat()
メソッドが最も高速な場合が多いですが、実際の処理内容や環境によって異なる場合があります。
- より高度な処理が必要な場合は、正規表現やカスタム関数などを組み合わせることもできます。
while
ループやdo-while
ループでも繰り返し処理は可能です。
javascript string