社区文档构建进行中,欢迎编辑。社区答疑群(非官方):717421103
全站通知:
帮助:解析函数/arraymap
刷
历
编
< 帮助:解析函数
跳到导航
跳到搜索
arraymap是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。
arraymap
arraymap用于分割字符串并以指定格式输出。出自扩展 Page Forms。
语法
{{#arraymap:字符串|分隔符|别名|输出wikitext|输出分隔符|输出连接词}}
- 字符串:分割的目标
- 分隔符:用于分割字符串。默认值为
,
。为空时将逐字符分割字符串,这会让结果包含很多分隔符。 - 别名:在
输出wikitext
中作为占位符。 - 输出wikitext:包含别名的wikitext,别名将被替换为子字符串多次输出
- 输出分隔符:可选,默认为英文逗号
,
。在两个输出wikitext
之间会被插入输出分隔符 - 输出连接词:可选。在最后一个“输出wikitext”前,将使用此连接词替代
输出分隔符
示例
- 指定格式:
{{#arraymap:a_b_c | _ | @ | '''@''' | + }}
→a+b+c
- 指定格式:
{{#arraymap:a_b_c | _ | @ | 有'''@'''的wikitext | …… }}
→有a的wikitext……有b的wikitext……有c的wikitext
- 指定格式和连接词:
{{#arraymap:托奇_环理_小满_秘银_从云_辰纱 | _ | @ | '''@''' | , |和 }}一起开会
→ 托奇,环理,小满,秘银,从云 和 辰纱一起开会 - 奇怪的连接词:
{{#arraymap:点点,丩卩夂忄,马小萌,Lu | , | @ | {{key|@}} | 、 |同时发现了}}
→点点、丩卩夂忄、马小萌 同时发现了 Lu
- 批量处理:
{{#arraymap:apple, banana, cherry | , | @ | {{ucfirst:@}}}}
→Apple, Banana, Cherry
- 筛选:
{{#arraymap: 2, 7, 4, 9, 3 |,|@|{{#ifexpr: @ > 5 | @ }} }}
→7, 9
更多用法
- 字符串可以来自SMW查询,模板参数或其他表达式
- 这可以在不额外使用模板的情况下,格式化SMW查询结果。
- 比如:
{{#arraymap:一个模板用于获取数据|分隔符|别称|{{一个模板|别称|其他参数}}}}
- 比如:
{{#arraymap:SMW查询|分隔符|别称|简单的wikitext}}
底层代码
- 从 $args 数组中提取传递给函数的参数,并进行必要的处理和展开。
- 根据指定的分隔符将输入字符串拆分为一个数组。
- 遍历数组中的每个元素,使用指定的输出wikitext($formula)进行替换和展开,wikitext中的别名($var)被替换为当前元素的值。
- 对处理后的结果进行修整和展开。
- 如果结果非空,则将其添加到结果数组中。
- 根据指定的输出分隔符和输出连接词,将结果数组中的元素连接成最终的结果字符串。
- 返回结果字符串,用于输出。