如何在Lua中获取table内元素的索引?
Lua中获取数组元素索引的方法
Lua本身没有内置的indexOf函数来直接获取数组元素的索引,你可以自己实现一个简单易用的版本:
local function indexOf(tbl, value) -- 用ipairs遍历连续整数索引的数组 for i, v in ipairs(tbl) do if v == value then return i -- 找到匹配元素,返回其索引 end end return nil -- 未找到匹配元素时返回nil end -- 测试示例 local testtbl = {"foo", "bar", "baz"} print(indexOf(testtbl, "bar")) -- 输出: 2 print(indexOf(testtbl, "qux")) -- 输出: nil
额外说明
- 上述函数依赖
ipairs,仅适用于从1开始、无空洞的连续整数索引数组;如果你的表包含非整数键或索引不连续,需要改用pairs遍历,但此时返回的键可能不是有序数字。 - 若数组内存在多个相同元素,该函数会返回第一个匹配元素的索引。
内容的提问来源于stack exchange,提问作者berriz44
相关产品推荐
相关产品推荐

