Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich mithilfe von Range und der Indexfunktion über parallele Arrays in HTML-Vorlagen iterieren?

Wie kann ich mithilfe von Range und der Indexfunktion über parallele Arrays in HTML-Vorlagen iterieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-05 01:07:02649Durchsuche

How can I iterate over parallel arrays in HTML templates using range and the index function?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn