Heim >Backend-Entwicklung >Golang >Wie kann ich in Go-Vorlagen gleichzeitig über mehrere Arrays iterieren?
Go-Vorlagen: Gleichzeitiges Iterieren über mehrere Arrays
Während der Arbeit an einem Projekt kann es vorkommen, dass Sie gleichzeitig über mehrere Arrays iterieren müssen Go-Vorlagen. Diese Situation entsteht, wenn Sie über Datenstrukturen wie die folgenden verfügen und erfordern, dass jedes Element aus diesen Arrays in einer Ausgabe gruppiert wird.
type Schedule struct { Description string ControlNights int PlayNights int StartDay int Combos []Combo } type Combo struct { From time.Time Every int Until time.Time Sounds []string Volumes []int Waits []int }
Iterieren über Kombinationen
Um die Daten jeder Combo einzeln anzuzeigen, können Sie eine Bereichsschleife verwenden, die über das Array Schedule.Combos iteriert. Dadurch wird jede Kombination durchlaufen. Dies reicht jedoch nicht aus, um die von Ihnen benötigten Daten anzuzeigen.
Arrays in Zeilen kombinieren
Um Daten aus verschiedenen Arrays in Zeilen zu gruppieren, wobei jede Zeile Daten von Sounds enthält , Volumes und Waits-Arrays können Sie dynamische Vorlagen verwenden. Mit dieser Technik können Sie Daten innerhalb der Vorlage selbst manipulieren und ändern.
Dynamische Vorlagen für die Gruppierung
Betrachten Sie die folgende Vorlage:
{{ range .Schedule.Combos }} <div class="container"> <div class="row"> <div class="col"> <div class="card mt-2 ml-2"> <div class="card-body"> <h5 class="card-title"><strong>Timing</strong></h5> <h5 class="card-text">Play every {{.Every}} mins</h5> <h5 class="card-text">From time {{TimeOfDayToString .From}}</h5> <h5 class="card-text">Until {{TimeOfDayToString .Until}}</h5> </div> </div> </div> <div class="col"> <div class="card mt-2"> <div class="card-body"> <h5 class="card-title"><strong>Sounds</strong></h5> {{ range .Sounds }} <h5 class="card-text">Sound {{.}}</h5> {{ end }} </div> </div> </div>
Um Töne, Lautstärken und Wartezeiten zu gruppieren, können Sie eine neue Vorlagenvariable erstellen, die alle drei kombiniert Arrays.
{{ $mergedArrays := .Sounds, .Volumes, .Waits }}
Iterieren über kombinierte Arrays
Mit den verfügbaren kombinierten Arrays können Sie sie mithilfe einer verschachtelten Schleife durchlaufen:
{{ range $index, $mergedArray := $mergedArrays }} {{ $sound := $mergedArray[0] }} {{ $volume := $mergedArray[1] }} {{ $wait := $mergedArray[2] }} <li>{{ $sound }} - {{ $volume }} - {{ $wait }}</li> {{ end }}
In dieser verschachtelten Schleife greifen Sie auf die einzelnen Elemente des kombinierten Arrays zu und stellen diese entsprechend dar.
Dieser Ansatz ermöglicht es Ihnen, die Daten aus den Arrays „Sounds“, „Lautstärken“ und „Wartezeiten“ in den gewünschten Zeilen zu gruppieren.
Das obige ist der detaillierte Inhalt vonWie kann ich in Go-Vorlagen gleichzeitig über mehrere Arrays iterieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!