
Мы рассмотрим в этой статье три основных способа повторения строки (string). Наиболее удобным на сегодняшний день является метод repeat в JavaScript.
Алгоритм задачи
Для начала построим алгоритм задачи. Нам необходимо повторить заданную строку (первый аргумент) несколько раз (второй аргумент). Результатом должно быть получение пустой строки, если второй аргумент (число) не является положительным.
function repeatString(str, count) { return str; } repeatString('Строка', 3);
Использование цикла вместо repeat в JavaScript
Цикл while
Первый способ — повторение строки с помощью цикла while. Его итерации будут продолжаться до тех пор, пока заданное условие истинно.
function repeatString(str, count) { let repeatedString = ''; while (count> 0) { repeatedString += str; count--; } return repeatedString; } console.log(repeatString('Строка', 3));
Цикл for…
В этом случае принцип остается аналогичным.
function repeatString(str, count) { let repeatedString = ''; for (i = 0; i < count; i++) { repeatedString += str; } return repeatedString; } console.log(repeatString('Строка', 3));
Использование условия и рекурсии
Рекурсия — это метод повторения операции путем многократного вызова самой функции до тех пор, пока не будет достигнут результат. Есть несколько ключевых функций рекурсии, которые необходимо учитывать, чтобы она работала должным образом.
Первый — базовый вариант. Обычно в этом случае используется условный оператор, например if, который останавливает рекурсию.
Второй — способ, при котором рекурсивная функция вызывается сама по себе.
function repeatString(str, count) { if(count < 0) return ''; if(count === 1) return str; else return str + repeatString(str, count - 1); } console.log(repeatString('Строка', 3));
Метод repeat в JavaScript
Этот способ предусматривает использование метода стандарта ES6 String.prototype.repeat():
Он создает и возвращает новую строку, которая содержит указанное количество копий начальной строки, объединенных вместе.
function repeatString(str, count) { if(count> 0) return str.repeat(count); else return ''; } console.log(repeatString('Строка', 3));
Упростим код с помощью тернарного оператора.
function repeatString(str, count) { return count > 0 ? str.repeat(count) : ''; } console.log(repeatString('Строка', 3));
Кроссбраузерность
Поддержка основными браузерами метода repeat(), за исключением IE, позволяет свободно использовать его.