JavaScriptNapisy
String. prototype. repeat()
Zwraca nowy napis złożony z podanej liczby powtórzeń oryginału.
- Zwraca
- Nowy napis zawierający
countkopii oryginału. - Zmienia oryginał
- Nie
Przykład
#JavaScript
console.log('=-'.repeat(10))
console.log('★'.repeat(4))
console.log('ha'.repeat(3))Konsola
=-=-=-=-=-=-=-=-=-=-
★★★★
hahaha
Definicja i zastosowanie
#Metoda repeat() skleja napis sam ze sobą tyle razy, ile wskażesz. "ab".repeat(3) daje "ababab", a repeat(0) zwraca pusty napis.
Przydaje się do generowania separatorów, wcięć, prostych pasków postępu, gwiazdek w ocenach czy maskowania fragmentu tekstu. Zamiast pętli sklejającej znaki wystarczy jedno wywołanie.
Liczba powtórzeń musi być nieujemna i skończona. Wartość ujemna lub Infinity powoduje błąd RangeError, a ułamki są ucinane, więc 2.7 działa jak 2. Oryginał pozostaje bez zmian.
Składnia
#Składnia
string.repeat(count)Parametry
#count
number
Liczba powtórzeń od0wzwyż. Ułamek jest ucinany, a wartość ujemna lub nieskończona rzucaRangeError.
Więcej przykładów
#JavaScript
function progressBar(done, total) {
const filled = Math.round((done / total) * 10)
return '█'.repeat(filled) + '░'.repeat(10 - filled) + ` ${done}/${total}`
}
console.log(progressBar(3, 10))
console.log(progressBar(7, 7))Konsola
███░░░░░░░ 3/10
██████████ 7/7
JavaScript
const tree = [
['Kurs', 0],
['Moduł 1', 1],
['Lekcja 1', 2],
['Moduł 2', 1]
]
for (const [label, depth] of tree) {
console.log(' '.repeat(depth * 2) + label)
}Konsola
Kurs
Moduł 1
Lekcja 1
Moduł 2
JavaScript
console.log('ab'.repeat(2.7))
console.log('ab'.repeat(0).length)
try {
'ab'.repeat(-1)
} catch (error) {
console.log(error.name)
}Konsola
abab
0
RangeError
Obsługa przeglądarek
#Szeroko dostępne
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- Liczba powtórzeń wyliczana z danych, np.
10 - filled, może wyjść ujemna. Zabezpiecz ją przezMath.max(0, n), żeby uniknąćRangeError. - Bardzo duża liczba powtórzeń tworzy ogromny napis i może zawiesić stronę. Silnik ma też górny limit długości napisu.
Powiązane hasła
#- String.prototype.padStart()Dopełnia napis z lewej strony podanym tekstem, aż osiągnie wskazaną długość. Idealne do zer wiodących.
- String.prototype.padEnd()Dopełnia napis z prawej strony podanym tekstem, aż osiągnie wskazaną długość.
- Template literalsSzablony tekstowe w odwróconych apostrofach: wstawiają wartości przez ${} i mogą zajmować wiele linii.
- Array.prototype.fill()Wypełnia tablicę (lub jej fragment) jedną wartością.
Widzisz błąd albo brakuje przykładu? Napisz do nas.