JavaScriptのrepeat
メソッドは、文字列を指定した回数だけ繰り返すための便利なメソッドです。
この記事では、repeat
メソッドの基本的な使い方や仕組み、注意点について解説します。
repeatメソッドとは
repeat
メソッドは、ES6(ECMAScript 2015)で導入された文字列メソッドの一つです。
このメソッドを使用すると、元の文字列を指定された回数だけ繰り返した新しい文字列を生成することができます。
repeatメソッドの使い方
repeat
メソッドの基本的な構文は次の通りです
string.repeat(count)
string
:繰り返したい元の文字列count
:繰り返す回数(正の整数)
例
let str = "hello";
let repeatedStr = str.repeat(3);
console.log(repeatedStr); // "hellohellohello"
この例では、文字列"hello"
が3回繰り返され、結果として"hellohellohello"
が生成されます。
repeatメソッドの仕組み
repeat
メソッドは以下のように動作します:
- 元の文字列を指定された回数(
count
)だけ繰り返します。 - 新しい文字列を返します。
内部での処理
count
が0の場合、空の文字列を返します。count
が1の場合、元の文字列をそのまま返します。count
がそれ以上の場合、元の文字列を指定された回数だけ結合した新しい文字列を返します。
特別なケース
console.log("abc".repeat(0)); // ""
console.log("abc".repeat(1)); // "abc"
console.log("abc".repeat(2.5)); // エラーではなく、2回繰り返し(小数部分は切り捨て)
console.log("abc".repeat(-1)); // RangeError: Invalid count value
repeatメソッドの注意点
repeat
メソッドを使用する際には、いくつかの注意点があります:
①負の整数や無限大は使用できない
repeat
メソッドの引数として負の整数や無限大(Infinity)を渡すと、RangeError
が発生します。
console.log("abc".repeat(-1)); // RangeError: Invalid count value
console.log("abc".repeat(Infinity)); // RangeError: Invalid count value
②小数は切り捨てられる
count
が小数の場合、小数部分は切り捨てられます。
console.log("abc".repeat(2.5)); // "abcabc"(2回繰り返し)
③大きすぎるcount
値
count
が非常に大きい場合、メモリ不足やパフォーマンスの問題が発生する可能性があります。適切な範囲内で使用することが重要です。
AtCoderなどの競技プログラミングでのrepeatメソッドの活用方法
競技プログラミングでは、特定の文字を繰り返して表示する必要があることがよくあります。
例えば、入力された文字列の長さに応じて「*」を繰り返し表示し、その文字列を挟むような出力を求められる場合です。
このようなケースでは、JavaScriptのrepeat
メソッドを使うことで効率的に実装できます。
問題の概要(例)
例えばこんな問題があったとしましょう。
入力として1行の文字列が与えられます。文字列の長さに応じて「*」を繰り返し、その文字列を挟んで出力します。
出力例は以下のようなイメージ
*****
Hello
*****
repeatメソッドを使った解法
repeat
メソッドを使ってこの問題を解くためのステップは次のような感じです。
- 入力された文字列を取得する。
- 文字列の長さを求める。
- その長さに応じて「*」を繰り返す文字列を生成する。
- 生成した「*」の文字列と入力された文字列を組み合わせて、出力する。
repeatメソッドが使えるところ
標準入力等の部分は省略して出力時の話にフォーカスします。
出力時、console.log(‘*’)としてしまうと、*一個ごとに改行された出力になってしまいますが、
repeatメソッドを使うことで横並びに*を並べることができます。
const stars = '*'.repeat(length);
上記のような感じで、一旦変数startsにrepeatメソッドを使って文字列の長さ分格納し、
console.log(stars);
console.log(inputString);
console.log(stars);
console.log(stars)とすれば想定通りの出力ができるかと思います。
まとめ
JavaScriptのrepeat
メソッドは、文字列を指定した回数だけ簡単に繰り返すことができる便利なメソッドです。
基本的な使い方から注意点まで理解して、効果的に利用しましょう。
特に、負の値や無限大、小数などの特殊なケースに注意し、正しい使い方を心がけてください。