返回表数组的索引

时间:2018-04-04 07:44:05

标签: arrays indexing lua

我有阵列:

racers = {}
racers[6] = {plCP = 4, plID= 21}

如果我的值为plID = 21,有没有办法返回赛车手的索引? (在这种情况下,我想返回6。)

我尝试构建反向索引,但我真的只能在表中获取索引。这就是我现在正在尝试的事情:

local index={}
for i = 1,5 do
    for k,v in pairs(racers[i]) do
       index[v]=k
    end
end

当我传递值21时返回“plID”,但我希望它返回6。

2 个答案:

答案 0 :(得分:1)

对于列表中的每个赛车,请检查plID是否等于您要查找的ID。

local racers = {}
racers[1] = {plCP = 4, plID= 21}
racers[2] = {plCP = 2, plID= 4}
racers[3] = {plCP = 6, plID= 5}
racers[4] = {plCP = 222, plID= 7}
racers[5] = {plCP = 6, plID= 12}

function getRacerIndexById(racerList, id)
      for index, racer in ipairs(racerList) do
        if racer.plID == id then
          return index
        end
      end
    end

print(getRacerIndexById(racers, 12))

答案 1 :(得分:0)

想出来。

Conversion failed when converting the varchar value '2000CityB' to data type int.

这将返回5,这是我正在寻找的赛车手的索引。