Повтор строки в JavaScript
Метод repeat()
Синтаксис
string.repeat ( multiplier )
Аргументы
- 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;
};
}