Module:TableTools: Difference between revisions

add a fancy introductory comment
m (grammar)
(add a fancy introductory comment)
Line 1:
--[[
-- This module includes a number of functions that can be useful when dealing with Lua tables.
------------------------------------------------------------------------------------
-- TableTools --
-- --
-- This module includes a number of functions that can be useful whenfor dealing with Lua tables. --
-- It is a meta-module, meant to be called from other Lua modules, and should --
-- not be called directly from #invoke. --
------------------------------------------------------------------------------------
--]]
 
local p = {}
Line 8 ⟶ 16:
 
--[[
------------------------------------------------------------------------------------
-- isPositiveInteger
--
Line 15 ⟶ 23:
-- useful for determining whether a given table key is in the array part or the
-- hash part of a table.
------------------------------------------------------------------------------------
--]]
function p.isPositiveInteger(num)
Line 26 ⟶ 34:
 
--[[
------------------------------------------------------------------------------------
-- getNumKeys
--
-- This takes a table and returns an array containing the numbers of any numerical
-- keys that have non-nil values, sorted in numerical order.
------------------------------------------------------------------------------------
--]]
function p.getNumKeys(t)
Line 46 ⟶ 54:
 
--[[
------------------------------------------------------------------------------------
-- getAffixNums
--
Line 53 ⟶ 61:
-- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", getAffixNums will
-- return {1, 3, 6}.
------------------------------------------------------------------------------------
--]]
function p.getAffixNums(t, prefix, suffix)
Line 72 ⟶ 80:
 
--[[
------------------------------------------------------------------------------------
-- compressSparseArray
--
Line 78 ⟶ 86:
-- while preserving the order, so that the array can be safely traversed with
-- ipairs.
------------------------------------------------------------------------------------
--]]
function p.compressSparseArray(t)
Line 91 ⟶ 99:
 
--[[
------------------------------------------------------------------------------------
-- sparseIpairs
--
-- This is an iterator for sparse arrays. It can be used like ipairs, but can
-- handle nil values.
------------------------------------------------------------------------------------
--]]
function p.sparseIpairs(t)