Повтор строки в JavaScript

Метод repeat()

Синтаксис

string.repeat ( multiplier )

Аргументы

  1. multiplier — количество повторений строки.

Возвращаемое значение

Возвращает новую строку, содержащую multiplier соединенных вместе копий строки string, на которой был вызван метод repeat().

Особенности

  • Безопасен для многобайтных строк.
  • Если multiplier равен нулю, то будет возвращена пустая строка.
  • Если multiplier меньше нуля, то будет брошена ошибка.

Полифилл

Если метод repeat() отсутствует в конкретной реализации JavaScript, то его можно добавить самостоятельно, воспользовавшись следующим полифиллом.

if (!String.prototype.repeat) {
	String.prototype.repeat = function (multiplier) {
		'use strict';
		if (this === null) {
			throw new TypeError('Can\'t convert ' + this + ' to object');
		}
		var string = '' + this;
		if (string.length === 0) {
			return '';
		}
		multiplier = +multiplier;
		if (multiplier !== multiplier) {
			multiplier = 0;
		}
		if (multiplier < 0) {
			throw new RangeError('Multiplier must be non-negative');
		} else if (multiplier === Infinity) {
			throw new RangeError('Multiplier must be less than infinity');
		}
		multiplier = Math.floor(multiplier);
		if (multiplier === 0) {
			return '';
		} else if (string.length * multiplier >= 1 << 28) {
			throw new RangeError('Multiplier must not overflow maximum string size');
		}
		var result = '';
		for (; ; ) {
			if ((multiplier & 1) === 1) {
				result += string;
			}
			multiplier >>>= 1;
			if (multiplier === 0) {
				break;
			}
			string += string;
		}
		return result;
	};
}