Module:TableTools: Difference between revisions
m
4 revisions imported from meta:Module:TableTools
(Finally getting around to merging in Module:Array length (originally written by Mr. Stradivarius) over six months after writing the merged code, also minor code simplify per Dinoguy1000 on talk page) |
MediaWiki>Minorax m (4 revisions imported from meta:Module:TableTools) |
||
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") |