如何修改Template Toolkit代码去除最后一个多余逗号?
解决Template Toolkit循环末尾多余逗号的问题
你可以通过以下两种常用方法去掉最后一个元素后的逗号:
方法一:使用JOIN过滤器(推荐)
Template Toolkit内置了join过滤器,能直接把数组元素用指定分隔符拼接,自动处理末尾无逗号的问题,代码更简洁:
names: [ '[% name.join("', '") %]' ]
解释:name.join("', '")会把数组里的每个元素用', '连接,生成name1', 'name2', 'name3这样的字符串,再在前后加上单引号和方括号,就能得到目标格式。
方法二:利用循环内置变量loop.last判断
在FOREACH循环里,通过loop.last判断当前元素是否是最后一个,仅当不是最后一个时输出逗号:
names: [ [% FOREACH name IN name %] '[% name %]'[% IF NOT loop.last %],[% END %] [% END %] ]
解释:loop.last是Template Toolkit循环的内置变量,当循环到最后一个元素时为真,此时不输出逗号;其他情况正常输出逗号。
内容的提问来源于stack exchange,提问作者dave
相关产品推荐
相关产品推荐

