JS Native bietet keine bequemen Formatiererfunktionen, und es sieht chaotisch und schwierig aus dem Charakterspleißen aus, und es ist sehr unpraktisch zu verwenden. Ich persönlich bin der Meinung, dass die in C# bereitgestellte Syntax nützlicher ist, wie beispielsweise:
String.Format ("Willkommen zu lernen '{0}', '{0}' ist großartig, Sie werden es {1} es!", "JavaScript", "Liebe");Diese sequentielle Ersatzmethode ist relativ klar, und wenn Sie denselben Inhalt ersetzen, können Sie die Situation der Übergabe von doppelten Parametern speichern. Das Folgende ist die einfache Implementierungsversion von JS (ohne strenge Test):
(Funktion (exportiert) {exports.format = function () {var args = array.prototype.slice.call (Argumente), Sourcestr = args.shift (); args.Recuce (execreplace, Sourcestry);}}) (window.utils = window.utils || {}); console.log (utils.format ("Willkommen, um '{0}', '{0}' zu lernen, Sie werden {1} es!", "Javascript", "Love");Der Schlüssel ist dieser Satz:
args.Recuce (execreplace, Sourcestry);
Hier wird die Reduzierung von Arrays verwendet. Reduzierung und Reduzierlicht sind neu hinzugefügte Funktionen in ES5. Die Parameter dieser Funktion sind reduziert (Rückruf, InitialValue). Rückruf empfängt 4 Parameter:
Vorheriger Wert:
Beim Überqueren des ersten Eintrags der Rückruffunktion wird das InitialValue direkt verwendet. Wenn kein erstes Element des Arrays angegeben ist, wird das erste Element des Arrays verwendet.
Der Wert des zweiten und nachfolgenden Traverals ist das Ergebnis des vorherigen Traversals.
Das von der letzte Durchfahrung zurückgegebene Ergebnis wird als Rückgabewert der Reduzierung der Funktion verwendet.
CurrentValue: Der aktuelle Element, den es durchquert hat
Index: Der Index des aktuellen Elements im Array
Array: Originalarray
In jeder Ausführung in ExecReplace wird das Ergebnis nach dem vorherigen Ersatz als ursprüngliche Ersatzzeichenfolge verwendet. Der Index des aktuellen Elements wird als zu ersetztes Inhalt verwendet und wiederum den Austauschinhalt iteriert.
HINWEIS: Reduceright ist im Grunde genommen die gleiche wie die Reduzierung der Funktion, mit der Ausnahme, dass die Durchfahrtsordnung von rechts nach links ist