860 Stimmen

Wiederholen Sie eine Zeichenfolge in JavaScript eine bestimmte Anzahl von Malen

In Perl kann ich ein Zeichen mehrmals wiederholen, indem ich die Syntax verwende:

$a = "a" x 10; // Ergebnis: "aaaaaaaaaa"

Gibt es eine einfache Möglichkeit, dies in Javascript zu erreichen? Ich kann offensichtlich eine Funktion verwenden, aber ich frage mich, ob es einen integrierten Ansatz oder eine andere clevere Technik gibt.

2voto

Amir Danish Punkte 328

So rufen Sie eine Funktion auf und erhalten das Ergebnis mithilfe von Array() und join()

mit Typescript und Pfeilfunktion

const repeatString = (str: string, num: number) => num > 0 ? 
 Array(num+1).join(str) : "";

console.log(repeatString("",10))
//outputs: 

function repeatString(str, num) {
  // Array(num+1) ist der zu wiederholende String und die Anzahl der Wiederholungen
  return num > 0 ? Array(num+1).join(str) : "";
}

console.log(repeatString("a",10))
// Ausgaben: aaaaaaaaaa
console.log(repeatString("",10))
//outputs:

1voto

Koushik Das Punkte 7270

Hier ist was ich benutze:

function repeat(str, num) {
        var holder = [];
        for(var i=0; i

1voto

nicael Punkte 17457

Ich erkenne, dass es keine beliebte Aufgabe ist, was wäre, wenn Sie Ihren String keine ganze Zahl Anzahl von Malen wiederholen müssen?

Das ist möglich mit repeat() und slice(), hier ist wie:

String.prototype.fracRepeat = function(n){
  if(n < 0) n = 0;
  var n_int = ~~n; // Anzahl ganzer Wiederholungen
  var n_frac = n - n_int; // Anzahl von Wiederholungen als Bruch (z.B. 0,5)
  var frac_length = ~~(n_frac * this.length); // Länge des Bruchteils in Zeichen, abgerundet

  return this.repeat(n) + this.slice(0, frac_length);
}

Und hier eine verkürzte Version:

String.prototype.fracRepeat = function(n){
   if(n < 0) n = 0;
   return this.repeat(n) + this.slice(0, ~~((n - ~~n) * this.length));
}

var s = "abcd";
console.log(s.fracRepeat(2.5))

0voto

Bruno Bronosky Punkte 60135

Ich werde mich auf @bonbon's Antwort ausweiten. Seine Methode ist ein einfacher Weg, um "N Zeichen zu einem vorhandenen String anzufügen", falls jemand das tun muss. Zum Beispiel, da "eine Google" eine 1 gefolgt von 100 Nullen ist.

for(var google = '1'; google.length < 1 + 100; google += '0'){}
document.getElementById('el').innerText = google;

Das ist "eine Google":

HINWEIS: Du musst die Länge des ursprünglichen Strings zur Bedingung hinzufügen.

0voto

0x4a6f4672 Punkte 25780

Lodash bietet eine ähnliche Funktionalität wie die Javascript repeat() Funktion, die nicht in allen Browsern verfügbar ist. Sie heißt _.repeat und ist seit Version 3.0.0 verfügbar:

_.repeat('a', 10);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X