Heim > Artikel > Backend-Entwicklung > Wie kann ich mithilfe von Range und der Indexfunktion über parallele Arrays in HTML-Vorlagen iterieren?
Verwendung von Index-in-Range-Schleifen zur Iteration über parallele Arrays in HTML-Vorlagen
In HTML-Vorlagen ermöglicht die Range-Funktion die Iteration über Arrays oder Slices, die die Auflistung einzelner Elemente innerhalb einer Struktur ermöglichen. Bei der Arbeit mit mehreren parallelen Arrays ist es oft notwendig, diese gleichzeitig zu durchlaufen und Elemente aus jedem Array abzubilden.
Der folgende Ansatz funktioniert jedoch nicht wie erwartet:
{{range $i, $e := .First}}$e - {{index .Second $i}}{{end}}
Dies schlägt fehl, weil der Punkt (.) im Bereichsblock auf das aktuelle Element verweist, über das iteriert wird, also das zweite Array. Der richtige Ansatz besteht darin, auf den ursprünglichen Punktwert zuzugreifen, der die gesamte Datenstruktur darstellt, die an die Vorlage übergeben wird.
Die Indexfunktion, eine vordefinierte Vorlagenfunktion, ermöglicht Indizierungsvorgänge für Karten, Slices und Arrays. Der korrekte Ansatz lautet wie folgt:
{{range $i, $e := .First}}$e - {{index $.Second $i}}{{end}}
Diese Variante verwendet die Punktreferenzen korrekt. Das $ vor Second stellt den ursprünglichen Punktwert dar und ermöglicht die Indizierung des zweiten Arrays mithilfe des aktuellen Index.
Eine prägnantere Lösung wäre jedoch die Erstellung einer benutzerdefinierten Vorlagenfunktion namens zip, die mehrere Slices akzeptiert und gibt ein Tupel-Slice zurück, das Elemente aus jedem Eingabe-Slice enthält. Dieser Ansatz bietet eine übersichtlichere Vorlage und erleichtert die Wiederverwendung:
{{range zip .First .Second}} {{$a := $._1}} {{$b := $._2}} {{printf "%v - %v" $a $b}} {{end}}
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Range und der Indexfunktion über parallele Arrays in HTML-Vorlagen iterieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!