如何使用索引获取值的键

如何使用索引从表格值中获取键,例如:

local myTable = {
Mary = 1000,
Bob = 2000,
Fred = 3000}

local keyAtIndex1 = myTable[1] ??? --- 应该返回 "Mary"
local keyAtIndexTwo = myTable[2] ??? --- 应该返回 "Bob"

是否存在预构建的方法或属性?

我目前正在这样做;

function tableGetKeyFromValue(_table, _value)
  for k,v in pairs(_table) do
if v==_value then return k end
  end
 return nil
end

是否有更好的方法?

点赞
用户734069
用户734069

Lua 表中的键不具有索引;它们本身就是索引。Lua 表中的键没有排序,因此您无法通过某种排序方式获取它们。

此外,没有机制可以根据它们的值获取键。映射只能单向进行:从键到值。如果您想从值到键建立映射,可以轻松构建一个单独的表来存储该映射。

然而,没有任何东西可用于将这两个表彼此同步。如果表是相对静态的,那么这很好。

2020-03-22 01:26:11