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))