【入門編】 repeat() メソッドによる文字列の複製 – JavaScript実践ガイド

知ってる? JavaScriptで文字列を「繰り返し」作る魔法! repeat()メソッドで、あなたのコードがもっと楽しくなる!

やっほー! JavaScriptの世界へようこそ!
フロントエンドの魔法使い、伝説のアーキテクトがお届けする、今日の「なるほど!」なJavaScript講座。今回は、あなたのコードをもっとスマートに、もっと楽しくしてくれる、とっても便利な「文字列操作」の世界を覗いてみよう。

特に、今日は「文字列を繰り返し作る」っていう、ちょっとした魔法みたいなメソッド、「`repeat()`」に焦点を当てるね。

「え? 文字列を繰り返す? それって、コピー&ペーストで良くない?」って思った?
うんうん、気持ちはわかる! でもね、JavaScriptの`repeat()`メソッドを知ると、その便利さにきっと驚くはず。まるで、お気に入りのフレーズを、ボタン一つで何回でも、好きなだけ繰り返してくれる魔法の杖みたいなんだ。

`repeat()`メソッドって、一体どんな魔法なの?

`repeat()`メソッドは、その名の通り、ある文字列を「指定した回数だけ繰り返して、新しい文字列を作る」ためのメソッドなんだ。

例えば、

「うーん、この「おめでとう!」ってメッセージ、5回くらい表示したいな…」

って思ったとするじゃん?
普通に考えたら、

console.log(“おめでとう!”);
console.log(“おめでとう!”);
console.log(“おめでとう!”);
console.log(“おめでとう!”);
console.log(“おめでとう!”);

って、5回書くことになる。
でも、もし「おめでとう!」が100回だったら? 1000回だったら? 想像するだけで、ちょっとゾッとするよね。

そこで登場するのが、`repeat()`メソッドの出番!

const message = “おめでとう!”;
const repeatedMessage = message.repeat(5); // messageを5回繰り返す

console.log(repeatedMessage);
// 出力: おめでとう!おめでとう!おめでとう!おめでとう!おめでとう!

ほら! たった1行で、同じ文字列が5回繰り返された新しい文字列ができた!
まるで、魔法の呪文みたいでしょ?

この「`message.repeat(5)`」っていう部分が、まさに魔法の呪文。
`message`っていう「元になる文字列」に、`.repeat()`っていう「繰り返し魔法」をかけて、カッコの中に「何回繰り返すか」(ここでは`5`)を指定する。そうすると、新しい、繰り返された文字列が「ポン!」って生まれるんだ。

こんな時にも便利! `repeat()`メソッドの活用例

この`repeat()`メソッド、ただ単に文字を繰り返すだけじゃなくて、色々な場面でコードをスッキリさせてくれるんだ。

例1:区切り線をもっと簡単に!

例えば、ブログ記事なんかで、ちょっとした区切り線を入れたい時ってあるよね。

// 以前の書き方(ちょっと手間がかかる)
let separator = “”;
for (let i = 0; i < 30; i++) { separator += "-"; } console.log(separator); // repeat()メソッドを使った書き方(スッキリ!) const separatorShort = "-".repeat(30); // "-"を30回繰り返す console.log(separatorShort); // 出力: ------------------------------ どう? 格段にコードが短くなったでしょ? 「この記号を〇回繰り返したい!」って思った時に、すぐに使えるんだ。

例2:ダミーデータを作る時にも!

開発中に、ちょっとしたテストデータが欲しい時ってあるよね。例えば、長い文字列をダミーとして表示したい場合。

const dummyWord = “テスト “;
const longDummyText = dummyWord.repeat(10); // “テスト “を10回繰り返す
console.log(longDummyText);
// 出力: テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト

こんな風に、繰り返し使いたい文字列を簡単に生成できるのは、本当に助かるんだ。

ちょっと待って! ここで注意! 負の数やInfinityは…?

さて、ここまで`repeat()`メソッドの便利なところを見てきたけど、ここからは「え、そんなことになっちゃうの?!」っていう、ちょっとした落とし穴についてもお話ししておくね。

`repeat()`メソッドは、カッコの中に「何回繰り返すか」を数値で指定するんだけど、もし、そこで「変な数」を指定したらどうなるんだろう?

1. 負の数を指定した場合(マイナスの数)

例えば、「-1回繰り返して!」なんて言われたら、どうする?
普通に考えたら、「え、それは無理…」ってなるよね。

JavaScriptも同じ!

const text = “やばい”;
try {
const result = text.repeat(-1); // -1回繰り返そうとする
console.log(result);
} catch (e) {
console.error(“エラーが発生しました!”, e.name);
console.error(“メッセージ:”, e.message);
}
// 出力:
// エラーが発生しました! RangeError
// メッセージ: Invalid count value

ちゃんとエラー(`RangeError`)が出てくれるんだ。「無効な回数ですよ!」って、優しく(?)教えてくれるわけ。
これは、プログラムが予期しない挙動をするのを防いでくれる、大切な仕組みなんだ。

2. Infinity(無限)を指定した場合

じゃあ、今度は「無限に繰り返して!」って言ったらどうなる?
「無限」なんて、現実ではありえないけど、コンピューターの世界ではどうだろう?

const text = “無限”;
try {
const result = text.repeat(Infinity); // 無限に繰り返そうとする
console.log(result);
} catch (e) {
console.error(“エラーが発生しました!”, e.name);
console.error(“メッセージ:”, e.message);
}
// 出力:
// エラーが発生しました! RangeError
// メッセージ: Invalid count value

これも、残念ながら(?)エラーになっちゃうんだ。
「無限に繰り返すなんて、メモリが爆発しちゃうよ!」って、コンピューターが悲鳴をあげないように、ちゃんと制限があるんだね。

3. 0を指定した場合

では、もし「0回繰り返して!」って言ったら?
これは、ある意味「何も繰り返さない」ってことだから、どうなるかな?

const text = “ゼロ”;
const result = text.repeat(0); // 0回繰り返す
console.log(result);
// 出力: (何も表示されない、空の文字列)

ちゃんと「空の文字列」が返ってくる。これは、期待通りの動きだね。

まとめ:`repeat()`メソッドで使える「数」

`repeat()`メソッドで使える「繰り返し回数」は、

  • 0以上の整数 (0, 1, 2, 3, …)

これだけなんだ。
負の数や、無限大(`Infinity`)は、エラーになっちゃうから気をつけてね!

テンプレートリテラルとの組み合わせで、もっと強力に!

ここで、もう一つJavaScriptの便利な機能、「テンプレートリテラル」と`repeat()`メソッドを組み合わせると、さらに表現力が豊かになることを紹介したい。

テンプレートリテラルっていうのは、バッククォート(` “ `)で囲まれた文字列のこと。これを使うと、文字列の中に変数や式を直接埋め込めるんだ。

const userName = “太郎”;
const welcomeMessage = `こんにちは、${userName}さん!`;
console.log(welcomeMessage);
// 出力: こんにちは、太郎さん!

さて、このテンプレートリテラルと`repeat()`メソッドを組み合わせるとどうなるか?

例えば、「〇〇さん、お誕生日おめでとう!〇〇さん、お誕生日おめでとう!…」みたいなメッセージを、動的に作りたい時。

const userName = “花子”;
const birthdayMessageBase = `${userName}さん、お誕生日おめでとう!`;
const fullBirthdayMessage = birthdayMessageBase.repeat(3); // ベースメッセージを3回繰り返す

console.log(fullBirthdayMessage);
// 出力: 花子さん、お誕生日おめでとう!花子さん、お誕生日おめでとう!花子さん、お誕生日おめでとう!

こんな風に、変数`userName`が入ったメッセージを、`repeat()`で簡単に繰り返し生成できる。
これは、例えば、リストの項目をたくさん表示したい時とか、色々な応用が考えられるね。

さあ、君も`repeat()`メソッドの魔法使いになろう!

どうだったかな?
JavaScriptの`repeat()`メソッド、とってもシンプルだけど、知っているとコードがぐっと書きやすくなる、素敵なメソッドだろ?

  • 文字列を簡単に繰り返したい時
  • コードを短く、スッキリさせたい時
  • 繰り返し処理をスマートに書きたい時

そんな時は、ぜひ`repeat()`メソッドを思い出してみてほしい。

ただし、繰り返し回数には「0以上の整数」を指定するのを忘れずにね! 負の数や`Infinity`は、エラーになっちゃうから、そこだけは注意しておこう。

この`repeat()`メソッドを、君のJavaScriptの「お道具箱」に加えて、もっともっと楽しいWeb制作・開発の世界を広げていってほしい。

また、次回の「なるほど!」なJavaScript講座でお会いしましょう!
それじゃあ、またね!

コメント

タイトルとURLをコピーしました