repeat() metodu belirtilen sayı oranında çağrıldığı string değerinin kopyalarından yeni bir string oluşturup birleştirerek yeni bir string döner.

Syntax

str.repeat(sayı);

Parametreler

sayı
0 ile +∞: [0, +∞) arasında dönmesi beklenen yeni oluşturulan stringin tekrar edilme sayısını belirten bir sayı değeri.

Return değeri

Verilen stringin belirtilen sayıda kopyasından oluşan yeni bir string.

Exceptionlar

  • RangeError: tekrar değeri negatif olmamalı.
  • RangeError: tekrar değeri sonsuzdan küçük olmalı ve maksimum string boyutunu aşmalalı.

Examples

'abc'.repeat(-1);   // RangeError
'abc'.repeat(0);    // ''
'abc'.repeat(1);    // 'abc'
'abc'.repeat(2);    // 'abcabc'
'abc'.repeat(3.5);  // 'abcabcabc' (sayı değeri integera çevrilecek)
'abc'.repeat(1/0);  // RangeError

({ toString: () => 'abc', repeat: String.prototype.repeat }).repeat(2);
// 'abcabc' (repeat() jenerik bir metod)

Polyfill

Bu method ECMAScript 2015 spesifikasyonuna eklendi ve tüm JavaScript uygulamalarında henüz mevcut olmayabilir. Ancak, izleyen kod ile polyfill edip desteklenmesini sağlayabilirsiniz.

 

if (!String.prototype.repeat) {
  String.prototype.repeat = function(count) {
    'use strict';
    if (this == null)
      throw new TypeError('can\'t convert ' + this + ' to object');

    var str = '' + this;
    // Stringi sayıya dönüştürmek için
    count = +count;
    // Check NaN
    if (count != count)
      count = 0;

    if (count < 0)
      throw new RangeError('tekrar değeri negatif olmamalı');

    if (count == Infinity)
      throw new RangeError('tekrar değeri infinityden küçük olmalı');

    count = Math.floor(count);
    if (str.length == 0 || count == 0)
      return '';

    // Sayının 31-bit integer olduğunun emin olunması ana kısmı büyük oranda 
    // optimize etmemize olanak sağlıyor. Ancak zaten bu günkü çoğu 
    // internet tarayıcısı ( Ağustos 2014 ) strings 1 << 28 karakter ve üstünü desteklemiyor. Yani:
    if (str.length * count >= 1 << 28)
      throw new RangeError('tekrar değeri maksimum string değerini aşmamalı);

    var maxCount = str.length * count;
    count = Math.floor(Math.log(count) / Math.log(2));
    while (count) {
       str += str;
       count--;
    }
    str += str.substring(0, maxCount - str.length);
    return str;
  }
}

Specifications

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'String.prototype.repeat' in that specification.
Standard Initial definition.
ECMAScript Latest Draft (ECMA-262)
The definition of 'String.prototype.repeat' in that specification.
Draft  

Browser compatibility

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
repeatChrome Full support 41Edge Full support 12Firefox Full support 24IE No support NoOpera Full support YesSafari Full support 9WebView Android No support NoChrome Android Full support 36Edge Mobile Full support YesFirefox Android Full support 24Opera Android Full support YesSafari iOS Full support 9Samsung Internet Android Full support Yesnodejs Full support 4.0.0
Full support 4.0.0
Full support 0.12
Disabled
Disabled From version 0.12: this feature is behind the --harmony runtime flag.

Legend

Full support  
Full support
No support  
No support
User must explicitly enable this feature.
User must explicitly enable this feature.