In some case it is useful to iterate over a named list
or vector
iteratelist
will create a new unnamed list
with name value members:
each item will be a list where 'name' is the corresponding name and 'value' is the original
value in list x
.
iteratelist(x, name = "name", value = "value")
unnamed list
with name value lists
# create an iteration list from a named vector
x <- c(a=1, b=2)
iteratelist(x)
#> [[1]]
#> [[1]]$name
#> [1] "a"
#>
#> [[1]]$value
#> [1] 1
#>
#>
#> [[2]]
#> [[2]]$name
#> [1] "b"
#>
#> [[2]]$value
#> [1] 2
#>
#>
# iterate over the members of a list
x <- list(name="John", age="30", gender="male")
iteratelist(x, name="variable")
#> [[1]]
#> [[1]]$variable
#> [1] "name"
#>
#> [[1]]$value
#> [1] "John"
#>
#>
#> [[2]]
#> [[2]]$variable
#> [1] "age"
#>
#> [[2]]$value
#> [1] "30"
#>
#>
#> [[3]]
#> [[3]]$variable
#> [1] "gender"
#>
#> [[3]]$value
#> [1] "male"
#>
#>
# iterate over an unnamed vector
values <- c(1,2,3,4)
template <-
'{{#values}}
* Value: {{.}}
{{/values}}'
whisker.render(template)
#> [1] "* Value: 1\n* Value: 2\n* Value: 3\n* Value: 4\n"
#or
values <- iteratelist(values, value="count")
template <-
'{{#values}}
* Value: {{count}}
{{/values}}'
whisker.render(template)
#> [1] "* Value: 1\n* Value: 2\n* Value: 3\n* Value: 4\n"