Module:TableTools:修订间差异
zhwiki>Hamish Update from master using #Synchronizer |
CaelLab-import(留言 | 贡献) 补回 2026-09-03 换版时丢掉的 allNumKeys / extendedSparseIpairs(Module:Navbox 依赖) |
||
| 第521行: | 第521行: | ||
end | end | ||
end | end | ||
function p.allNumKeys(t) | |||
local nums = {} | |||
for k, v in pairs(t) do | |||
if type(k)=='number' then | |||
nums[#nums + 1] = k | |||
end | |||
end | |||
table.sort(nums) | |||
return nums | |||
end | |||
local function cleanPattern(s) | |||
-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally. | |||
return s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1') | |||
end | |||
-- 搜索指定前后缀的整数键。 | |||
function p.extendedSparseIpairs(t) | |||
checkType('extendedSparseIpairs', 1, t, 'table') | |||
local nums = p.allNumKeys(t) | |||
local i = 0 | |||
local lim = #nums | |||
return function () | |||
i = i + 1 | |||
if i <= lim then | |||
local key = nums[i] | |||
return key, t[key] | |||
else | |||
return nil, nil | |||
end | |||
end | |||
end | |||
-- 返回表中字段的数量。 | |||
return p | return p | ||