【JS】repeatメソッドの使い方

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メソッドは以下のように動作します:

  1. 元の文字列を指定された回数(count)だけ繰り返します。
  2. 新しい文字列を返します。

内部での処理

  1. countが0の場合、空の文字列を返します。
  2. countが1の場合、元の文字列をそのまま返します。
  3. 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メソッドを使ってこの問題を解くためのステップは次のような感じです。

  1. 入力された文字列を取得する。
  2. 文字列の長さを求める。
  3. その長さに応じて「*」を繰り返す文字列を生成する。
  4. 生成した「*」の文字列と入力された文字列を組み合わせて、出力する。

repeatメソッドが使えるところ

標準入力等の部分は省略して出力時の話にフォーカスします。

出力時、console.log(‘*’)としてしまうと、*一個ごとに改行された出力になってしまいますが、

repeatメソッドを使うことで横並びに*を並べることができます。

    const stars = '*'.repeat(length);

上記のような感じで、一旦変数startsにrepeatメソッドを使って文字列の長さ分格納し、

    console.log(stars);
    console.log(inputString);
    console.log(stars);

console.log(stars)とすれば想定通りの出力ができるかと思います。

まとめ

JavaScriptのrepeatメソッドは、文字列を指定した回数だけ簡単に繰り返すことができる便利なメソッドです。

基本的な使い方から注意点まで理解して、効果的に利用しましょう。

特に、負の値や無限大、小数などの特殊なケースに注意し、正しい使い方を心がけてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次