Module:table/isArray

From Linguifex
Revision as of 19:10, 2 May 2025 by wikt>Theknightwho
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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

local pairs = pairs

--[==[
Returns true if all keys in the table are consecutive integers starting from 1.]==]
return function(t)
	-- pairs() is unordered, but can be assumed to return every key in `t`, so
	-- if every integer key from 1 to n (the number of keys in `t`) is in use,
	-- then all the keys in `t` form an integer range from 1 to n, making `t`
	-- a contiguous array.
	local i = 0
	for _ in pairs(t) do
		i = i + 1
		if t[i] == nil then
			return false
		end
	end
	return true
end