ホームページ > バックエンド開発 > Golang > 「index」関数を使用してHTML/テンプレートの並列配列を反復処理する方法は?

「index」関数を使用してHTML/テンプレートの並列配列を反復処理する方法は?

Barbara Streisand
リリース: 2024-11-04 12:49:02
オリジナル
214 人が閲覧しました

How to Iterate Through Parallel Arrays in HTML/Template using the `index` Function?

インデックスを使用した HTML/テンプレートでの並列配列の反復

多くの開発シナリオでは、2 つ以上の配列が同じサイズであり、その要素が同じである必要がある並列配列の操作が必要になります。同期された方法でアクセスされます。このような状況では、これらの並列配列を反復処理する方法を理解することが重要になります。

質問:

HTML で並列配列を反復処理するために範囲ブロック内のインデックスを使用するにはどうすればよいですか? /Template?

失敗した試行:

このコードは望ましい結果を達成できません:

{{range $i, $e := .First}}$e - {{index .Second $i}}{{end}}
ログイン後にコピー

解決策:

ここで成功する鍵は、HTML/テンプレートで事前定義されたグローバル テンプレート関数であるインデックス関数を活用することです。これにより、後続の引数による最初の引数のインデックス付けが可能になります。

index   Returns the result of indexing its first argument by the following arguments. Thus index x 1 2 3 is, in Go syntax, x[1][2][3]. Each indexed item must be a map, slice, or array.
ログイン後にコピー

範囲ブロック内のドットの再割り当てが考慮されていないため、最初のコードは失敗します。元のドットにアクセスするには、別の定義済みテンプレート関数を利用できます:

When execution begins, $ is set to the data argument passed to Execute, that is, to the starting value of dot.
ログイン後にコピー

コードの改良版は次のようになります:

{{range $i, $e := .First}}$e - {{index $.Second $i}}{{end}}
ログイン後にコピー

代替アプローチ:

zip と呼ばれるカスタム テンプレート関数を定義することで、よりクリーンなアプローチを検討してください。この関数は複数のスライスを入力として受け取り、入力スライス内の対応する要素ごとに 1 つずつ、ペアのスライスを生成します。これをテンプレートで使用して、反復プロセスを簡素化できます。

以上が「index」関数を使用してHTML/テンプレートの並列配列を反復処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート