许多开发场景都涉及使用并行数组,其中两个或多个数组具有相同的大小,并且它们的元素应该是以同步方式访问。在这种情况下,了解如何迭代这些并行数组变得至关重要。
问题:
如何使用范围块内的索引来迭代 HTML 中的并行数组/Template?
尝试失败:
此代码未能达到预期结果:
{{range $i, $e := .First}}$e - {{index .Second $i}}{{end}}
解决方案:
这里成功的关键是利用索引函数,这是 HTML/Template 中预定义的全局模板函数。它允许通过后续参数对第一个参数进行索引。
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 的自定义模板函数。该函数将多个切片作为输入并生成一个成对的切片,一个对应于输入切片中的每个对应元素。然后可以在模板中使用它来简化迭代过程。
以上是如何使用“index”函数遍历 HTML/模板中的并行数组?的详细内容。更多信息请关注PHP中文网其他相关文章!