打开/关闭搜索
搜索
打开/关闭菜单
通知
打开/关闭个人菜单
查看“模块:Array”的源代码
来自Rizline中文维基
查看
阅读
查看源代码
查看历史
associated-pages
模块
讨论
更多操作
←
模块:Array
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:emailconfirmed
您必须确认您的电子邮件地址才能编辑页面。请通过
参数设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
local p = {} local f = mw.getCurrentFrame() local function stringToArray(str, separator, wrapTag, keepBlank, requireSort) local arr = {} local i = 1 for v in mw.text.gsplit(str, separator) do if v ~= '' or keepBlank then if wrapTag ~= '' then arr[i] = f:extensionTag(wrapTag, v) else arr[i] = v end end i = i + 1 end if requireSort then table.sort(arr) end return arr end local function tableToArray(tbl, wrapTag, keepBlank, requireSort) local arr = {} for k, v in pairs(tbl) do if type(k) == 'number' and (v ~= '' or keepBlank) then if wrapTag ~= '' then arr[k] = f:extensionTag(wrapTag, v) else arr[k] = v end end end if requireSort then table.sort(arr) end return arr end function p.main() local args = require('Module:ProcessArgs').merge(true) return p.array(args) end function p.array(args) local wrapTag = args.wrap or '' local delimiter = args.delimiter or args.d or '' local keepBlank = args.keepblank local requireSort = args.sort local outputPrefix = args.prefix or '' local outputSuffix = args.suffix or '' local arr if args.mode == 'single' then arr = stringToArray(args[1], args.sep or ',', wrapTag, keepBlank, requireSort) else arr = tableToArray(args, wrapTag, keepBlank, requireSort) end local result if delimiter == 'pretty' then result = mw.text.listToText(arr) elseif delimiter == 'newline' or delimiter == 'br' then result = table.concat(arr, '<br>') elseif delimiter == 'list' or delimiter == 'list-newline' or delimiter == 'bullet' or delimiter == '*' then local listLevel = args['list-level'] or '**' result = table.concat(arr, '\n' .. listLevel) else result = table.concat(arr, delimiter) end return outputPrefix .. result .. outputSuffix end return p
本页使用的模板:
模块:Array/doc
(
查看源代码
)
返回
模块:Array
。