درس 24 از 24

تکرار رشته در جاوااسکریپت با repeat() | آموزش کامل + مثال و خطاها

بخش: کار با رشته در جاوااسکریپت

وقتی با جاوااسکریپت کار می‌کنید، ممکن است با موقعیت‌هایی روبه‌رو شوید که لازم باشد یک رشته را تعداد مشخصی بار تکرار کنید.

چه در حال ساختن الگوهای تکراری باشید و چه فقط بخواهید متنی را چند بار پشت سر هم بیاورید، متد repeat() یک راه ساده و مؤثر برای انجام این کار فراهم می‌کند.

متد repeat() یک تابع داخلی در جاوااسکریپت است که به شما اجازه می‌دهد یک رشته را به تعداد مشخصی تکرار کنید. سینتکس پایه‌ی آن به شکل زیر است:

string.repeat(count);

string رشته‌ای است که می‌خواهید تکرار شود، و count تعداد دفعاتی است که می‌خواهید آن رشته تکرار شود. مثال:

let word = "Hello!";
let repeatedWord = word.repeat(3);
console.log(repeatedWord);  // "Hello!Hello!Hello!"
"Hello!Hello!Hello!"

در این مثال، رشته‌ی Hello! سه بار تکرار شده و نتیجه Hello!Hello!Hello! شده است.

با اینکه متد repeat() مفید است، چند استثنا و محدودیت وجود دارد که باید در نظر داشته باشید.

پارامتر count باید یک عدد غیرمنفی باشد. اگر یک عدد منفی بدهید، جاوااسکریپت یک RangeError ایجاد می‌کند.

let word = "Test";
console.log(word.repeat(-1));  // Throws RangeError: Invalid count value

مقدار count باید یک عدد متناهی باشد. اگر سعی کنید یک رشته را بی‌نهایت بار تکرار کنید، یا از Infinity به عنوان مقدار count استفاده کنید، باز هم RangeError دریافت خواهید کرد.

در جاوااسکریپت، Infinity یک مقدار ویژه است که یک کمیت بی‌نهایت را نشان می‌دهد. از آن برای نمایش اعدادی استفاده می‌شود که از هر عدد متناهی بزرگ‌تر هستند.

let word = "Test";
console.log(word.repeat(Infinity));  // Throws RangeError: Invalid count value

اگر count یک عدد صحیح نباشد، مثل یک عدد اعشاری مانند 2.5، متد repeat() آن را به نزدیک‌ترین عدد صحیح کوچک‌تر گرد می‌کند.

let word = "Test";
console.log(word.repeat(2.5));  // "TestTest"
"TestTest"

اگر مقدار 0 را به عنوان count بدهید، متد repeat() یک رشته‌ی خالی برمی‌گرداند.

let word = "Test";
console.log(word.repeat(0));  // ""
""

متد repeat() می‌تواند کارهایی را که شامل تکرار رشته‌ها هستند ساده‌تر کند و باعث شود کد شما کوتاه‌تر و خواناتر شود.

چه در حال تولید الگوهای متنی تکراری باشید و چه بخواهید فضایی را با کاراکترها پر کنید، repeat() می‌تواند شما را از نوشتن حلقه‌ها یا کدهای پیچیده‌تر بی‌نیاز کند.

شما محدود به این نیستید که فقط یک عدد را مستقیم به متد repeat() بدهید. همچنین می‌توانید یک متغیر که مقدار عددی دارد به آن پاس بدهید.

let count = 4;
let word = "Test";
let repeatedWord = word.repeat(count);
console.log(repeatedWord); // TestTestTestTest
"TestTestTestTest"

در این مثال، متغیر count تعداد تکرارها را نگه می‌دارد. این کار زمانی مفید است که تعداد تکرارها به ورودی کاربر یا مقادیر پویای دیگر در برنامه بستگی داشته باشد.


سوالات

نتیجه‌ی اجرای "Hello".repeat(3); در جاوااسکریپت چیست؟

  • "HelloHelloHello"
  • "Hello Hello Hello"
  • "Hello!"
  • "HelloHello"

اگر سعی کنید repeat() را با یک عدد منفی فراخوانی کنید، چه اتفاقی می‌افتد؟

  • رشته یک بار تکرار می‌شود.
  • رشته به اندازه‌ی قدرمطلق عدد منفی تکرار می‌شود.
  • یک RangeError ایجاد می‌شود.
  • یک رشته‌ی خالی برگردانده می‌شود.

اگر "*".repeat(0) را فراخوانی کنید، خروجی چیست؟

  • "*"
  • ""
  • null
  • "*****"