Module:Util/tables/keyOf

From Zelda Wiki, the Zelda encyclopedia
Jump to navigation Jump to search

keyOf(tbl, value)

Returns

  • First key found whose value is shallow-equal to value, or nil if none found.

Examples

#InputOutputStatus
1
keyOf({"foo", [3] = "bar"}, "bar")
3
2
keyOf(
  {
    baz = "quux",
    foo = "bar",
  },
  "quux"
)
"baz"
3
keyOf({"foo", "bar"}, "quux")
nil
Does not perform deep-equal checks on tables.
4
keyOf(
  {
    {},
    {},
  },
  {}
)
nil

local function keyOf(tbl, val)
	for k, v in pairs(tbl) do
		if v == val then
			return k
		end
	end
	return nil
end

return keyOf