主题
map
从每个数组条目中选取一个属性,或用表达式映射条目。
语法
knap
{{ value | map:"name" }}
{{ value | map:"author.name" }}
{{ value | map:item => item.name }}
{{ value | map:item => ({name: item.name}) }}
{{ value | map:item => "prefix/${item}" }}用法
- 传入带引号的属性路径即可进行简单选取。点分路径用于选取嵌套的自有属性。
- 箭头表达式可以选取属性、构造一个小对象,或把条目插值进字符串字面量。
- 属性选取会保留取值类型;路径缺失时产生
null。 - 内置过滤器不能在箭头表达式内部调用。需要渲染映射结果时,请在
map之后链式调用template。
示例
属性简写
json
{
"people": [
{
"name": "Ada"
},
{
"name": "Lin"
}
]
}knap
{{ people | map:"name" }}md
["Ada","Lin"]嵌套属性
json
{
"people": [
{
"author": {
"name": "Ada"
}
},
{
"author": {
"name": "Lin"
}
}
]
}knap
{{ people | map:"author.name" }}md
["Ada","Lin"]构造对象
json
{
"people": [
{
"name": "Ada",
"role": "Engineer"
},
{
"name": "Lin",
"role": "Designer"
}
]
}knap
{{ people | map:person => ({name: person.name, role: person.role}) }}md
[{"name":"Ada","role":"Engineer"},{"name":"Lin","role":"Designer"}]构建字符串
json
{
"genres": [
"rock",
"pop"
]
}knap
{{ genres | map:item => "genres/${item}" }}md
["genres/rock","genres/pop"]