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