Module:table/numKeys

< Module:table
Revision as of 21:29, 4 November 2025 by Sware (talk | contribs) (Created page with "local math_module = "Module:math" local pairs = pairs local sort = table.sort local function is_positive_integer(...) is_positive_integer = require(math_module).is_positive_integer return is_positive_integer(...) end --[==[ Given a table, return an array containing all positive integer keys, sorted either in numerical order, or using a custom `keySort` function.]==] return function(t, keySort) local nums, i = {}, 0 for k in pairs(t) do if is_positive_integer(k)...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:table/numKeys/doc

local math_module = "Module:math"

local pairs = pairs
local sort = table.sort

local function is_positive_integer(...)
	is_positive_integer = require(math_module).is_positive_integer
	return is_positive_integer(...)
end

--[==[
Given a table, return an array containing all positive integer keys, sorted either in numerical order, or using a custom `keySort` function.]==]
return function(t, keySort)
	local nums, i = {}, 0
	for k in pairs(t) do
		if is_positive_integer(k) then
			i = i + 1
			nums[i] = k
		end
	end
	-- No need for [[Module:math/compare]], as the default is adequate for integers.
	sort(nums, keySort)
	return nums
end