45

我需要知道如何在 lua 中检索表的键集。例如,如果我有下表:

tab = {}
tab[1]='a'
tab[2]='b'
tab[5]='e'

我想检索一个如下所示的表:

keyset = {1,2,5}
4

2 回答 2

50
local keyset={}
local n=0

for k,v in pairs(tab) do
  n=n+1
  keyset[n]=k
end

请注意,您不能保证keyset. 如果您希望键按排序顺序排列,请keyset使用table.sort(keyset).

于 2012-10-01T13:35:28.457 回答
1
local function get_keys(t)
  local keys={}
  for key,_ in pairs(t) do
    table.insert(keys, key)
  end
  return keys
end
于 2021-11-29T10:40:57.657 回答