查看“模块:SortUtil”的源代码
←
模块:SortUtil
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
local util_args = require('Module:ArgsUtil') local util_table = require('Module:TableUtil') local lang = mw.getLanguage('en') local h = {} function h.compareTwoArraysByKeys(a, b, keyTbl, incTbl, i) if i > #keyTbl then return nil end local thisKey = keyTbl[i] if a[thisKey] == b[thisKey] or not a[thisKey] or not b[thisKey] then return h.compareTwoArraysByKeys(a, b, keyTbl, incTbl, i+1) end return h.compareNumberOrString(a[thisKey], b[thisKey], incTbl[i]) end function h.compareNumberOrString(a, b, increasing) if increasing then return h.compareNumberOrString(b, a, false) end if tonumber(a) and tonumber(b) then return tonumber(a) > tonumber(b) end return lang:caseFold(a) > lang:caseFold(b) end local p = {} function p.tablesByKeys(tbl, key, increasing) local keyTbl = util_table.guaranteeTable(key) local incTbl = util_table.guaranteeTable(increasing) or {} table.sort(tbl, function(a,b) return h.compareTwoArraysByKeys(a, b, keyTbl, incTbl, 1) end) end function p.dictByKeys(tbl, key, increasing) local keyTbl = util_table.guaranteeTable(key) local incTbl = util_table.guaranteeTable(increasing) or {} table.sort(tbl, function(a,b) local result = h.compareTwoArraysByKeys(tbl[a], tbl[b], keyTbl, incTbl, 1) if result == nil then return a < b end return result end) end function p.sortConstantDictionary(tbl) table.sort(tbl, function(a,b) return h.compareNumberOrString(tbl[a], tbl[b]) end) end return p
该页面使用的模板:
模块:SortUtil/doc
(
查看源代码
)
返回至
模块:SortUtil
。
导航菜单
个人工具
登录
名字空间
模块
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
随机页面
最近更改
最新文件
常用
上传多个文件
工具
链入页面
相关更改
特殊页面
页面信息