Module:TableTools: Difference between revisions
Jump to navigation
Jump to search
m Changed protection level for "Module:TableTools": High-risk Lua module: bumping protection level due to high usage, plus the stability of the module. See https://en.wikipedia.org/w/index.php?title=Wikipedia:Requests_for_page_protection&oldid=983044034#Module:TableTools ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite)) |
metawikimedia>MusikBot II m Changed protection settings for "Module:TableTools": High-risk template or module (more info) ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) |
||
Line 30: | Line 30: | ||
--]] | --]] | ||
function p.isPositiveInteger(v) | function p.isPositiveInteger(v) | ||
if type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity then | |||
return true | |||
else | |||
return false | |||
end | |||
end | end | ||
Line 44: | Line 48: | ||
--]] | --]] | ||
function p.isNan(v) | function p.isNan(v) | ||
if type(v) == 'number' and tostring(v) == '-nan' then | |||
return true | |||
else | |||
return false | |||
end | |||
end | end | ||
Line 129: | Line 137: | ||
local function cleanPattern(s) | local function cleanPattern(s) | ||
-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally. | -- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally. | ||
s = s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1') | |||
return s | |||
end | end | ||
Line 413: | Line 422: | ||
--[[ | --[[ | ||
-- | -- This returns the length of a table, or the first integer key n counting from | ||
-- | -- 1 such that t[n + 1] is nil. It is similar to the operator #, but may return | ||
-- a different value when there are gaps in the array portion of the table. | -- a different value when there are gaps in the array portion of the table. | ||
-- Intended to be used on data loaded with mw.loadData. For other tables, use #. | -- Intended to be used on data loaded with mw.loadData. For other tables, use #. | ||
Line 422: | Line 430: | ||
-- frame.args. | -- frame.args. | ||
--]] | --]] | ||
function p.length(t) | |||
local i = 1 | |||
while t[i] ~= nil do | |||
i = i + 1 | |||
end | |||
return i - 1 | |||
end | |||
function p.inArray(arr, valueToFind) | function p.inArray(arr, valueToFind) | ||
checkType("inArray", 1, arr, "table") | checkType("inArray", 1, arr, "table") |