首先您需要对表格进行排序:
local myTable = {
{id = 1, points = 100},
{id = 3, points = 200},
{id = 4, points = 150},
{id = 7, points = 150}
}
您不需要将这些值索引为“player1”、“player2”等。因此,如果您希望索引显示为 player1 等,请返回索引并连接为播放器,例如:
for key, value in pairs(myTable) do
print('player' .. key)
end
过去的代码将打印所有带有前缀'player'的表索引。
但是只得到前两个值;我们能做什么?简单的!做一个函数:
local myTable = {
{id = 1, points = 100},
{id = 3, points = 200},
{id = 4, points = 150},
{id = 7, points = 150}
}
local function collect(table, howMuch)
local response, index = {}, 1
for key, value in pairs(table) do
response[key] = howMuch and index <= howMuch and value or nil
index = index + 1
end
return response
end
local response = collect(myTable, 2)
print(response[1].id, response[2].id, response[3]) -- 1, 3, nil
这个函数有什么作用?
从名为 table 的第一个参数中收集值,并在名为 howMuch 的第二个参数的基础上(作为响应的最大值)返回这些值。
或者给朋友:iters 表 myTable 并且只返回一个包含 2 个字段的表。