Editing Module:TableTools
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
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 295: | Line 304: | ||
]] | ]] | ||
function p.sortedPairs(t, keySort) | function p.sortedPairs(t, keySort) | ||
local check = _check('keysToList') | |||
checkType('sortedPairs', 1, t, 'table') | checkType('sortedPairs', 1, t, 'table') | ||
checkType('sortedPairs', 2, keySort, 'function', true) | checkType('sortedPairs', 2, keySort, 'function', true) | ||
Line 413: | Line 423: | ||
--[[ | --[[ | ||
-- | -- 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 #. | ||
--]] | --]] | ||
function p.length(t) | |||
local i = 0 | |||
repeat | |||
i = i + 1 | |||
until t[i] == nil | |||
return i - 1 | |||
end | |||
function p.inArray(arr, valueToFind) | function p.inArray(arr, valueToFind) | ||
checkType("inArray", 1, arr, "table") | checkType("inArray", 1, arr, "table") |