Module:TableTools: Difference between revisions
Jump to navigation
Jump to search
m 1 revision imported |
MeowyCats2 (talk | contribs) m 59 revisions imported |
||
(9 intermediate revisions by 9 users not shown) | |||
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 414: | 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 423: | 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") |