Repeat: примеры (JAVASCRIPT)
repeat(count): stringОписание метода repeat
Метод repeat() принадлежит объекту String в JavaScript. Он используется для создания новой строки путем повторения исходной строки заданное количество раз. Этот метод удобен для генерации повторяющихся шаблонов, создания отступов или заполнителей.
Синтаксис метода: str.repeat(count).
- count: целочисленный аргумент, определяющий, сколько раз повторить строку. Допустимый диапазон: от 0 до положительной бесконечности. Если аргумент не является целым числом, он будет автоматически округлен до ближайшего целого (с помощью метода
Math.floor). - Возвращаемое значение: новая строка, состоящая из указанного количества копий исходной строки.
- Если
countравен 0, возвращается пустая строка. - Если
countотрицателен или равен бесконечности (Infinity), генерируется ошибкаRangeError.
Простые примеры использования
console.log('Hi'.repeat(3));HiHiHi
console.log('A'.repeat(5));AAAAA
console.log('Test'.repeat(0));(пустая строка)
console.log('Na'.repeat(2) + ' Batman!');NaNa Batman!
// Дробный аргумент округляется
console.log('X'.repeat(3.7));XXX
Альтернативные подходы в JavaScript
До появления метода repeat() использовались другие способы.
- Цикл for: классический, но многословный способ.
- Метод Array(n).join(str): создание массива заданной длины и объединение его элементов с помощью строки. Не работает, если исходная строка пустая.
- Рекурсия: редко используется из-за сложности.
Метод repeat() предпочтительнее из-за читаемости и производительности. Альтернативные методы могут быть полезны в старых средах, не поддерживающих ES6.
Распространенные ошибки
// Отрицательное число вызывает ошибку
try {
'abc'.repeat(-1);
} catch(e) {
console.log(e.toString());
}RangeError: Invalid count value
// Бесконечность также вызывает ошибку
try {
'abc'.repeat(Infinity);
} catch(e) {
console.log(e.toString());
}RangeError: Invalid count value
// Нечисловые аргументы преобразуются в число
console.log('Z'.repeat('3')); // Строка '3' преобразуется в число 3
console.log('Z'.repeat(null)); // null преобразуется в 0ZZZ (пустая строка)
История изменений
Метод repeat() был стандартизирован в спецификации ECMAScript 2015 (ES6). В более ранних версиях JavaScript этот метод отсутствовал. С момента добавления в стандарт его синтаксис и поведение остаются неизменными. Для поддержки в устаревших браузерах может потребоваться полифилл.
Расширенные примеры применения
// Создание визуального разделителя в консоли
const separator = '-'.repeat(40);
console.log(separator);
console.log('Начало блока');
console.log(separator);---------------------------------------- Начало блока ----------------------------------------
// Формирование строки с отступом
function indentText(text, level) {
return ' '.repeat(level * 4) + text;
}
console.log(indentText('Отступ 1', 1));
console.log(indentText('Отступ 2', 2)); Отступ 1
Отступ 2// Генерация простого прогресс-бара
function progressBar(percent, length=20) {
const filled = '█'.repeat(Math.round(percent/100 * length));
const empty = '░'.repeat(length - filled.length);
return `[${filled}${empty}] ${percent}%`;
}
console.log(progressBar(75));[███████████████░░░░░] 75%
// Использование с шаблонными строками
const symbol = '★';
const rating = 5;
console.log(`Рейтинг: ${symbol.repeat(rating)}`);Рейтинг: ★★★★★
// Проверка на очень большое количество повторений (может быть медленно)
const bigString = 'AB'.repeat(1e5); // 200 тысяч символов
console.log(bigString.length);200000
Повторение строк в других языках
// PHP
echo str_repeat('Hi', 3);HiHiHi
// Python
print('Ha' * 3)HaHaHa
// MySQL
SELECT REPEAT('SQL', 2);SQLSQL
// C (пример)
#include <stdio.h>
#include <string.h>
int main() {
char src[] = "C";
for(int i=0; i<3; i++) printf("%s", src);
return 0;
}CCC
Отличия: в Python используется оператор умножения, а не метод. В PHP функция называется str_repeat. В C отсутствует встроенная функция, требуется цикл.