如何从最后一个索引循环到第一个表格

bestSword = {
  {name = 'www' , lvl = 35, atk = 38, npcPrice = 15000 , buyPrice = 0},
  {name = 'bbb' , lvl = 40, atk = 40, npcPrice = 20000 , buyPrice = 0},
  {name = 'eee' , lvl = 50, atk = 42, npcPrice = 25000 , buyPrice = 0},
  {name = 'sss' , lvl = 55, atk = 43, npcPrice = 30000 , buyPrice = 0},
  {name = 'aaa' , lvl = 60, atk = 44, npcPrice = 30000 , buyPrice = 0},
  {name = 'qwe' , lvl = 70, atk = 46, npcPrice = 35000 , buyPrice = 0},
  {name = 'asd' , lvl = 82, atk = 48, npcPrice = 60000 , buyPrice = 0}
}

我有一个表格,如何从最后一个索引循环到第一个?它应该基于 lvl 中断。我只想展示最好的武器表格。例如,如果玩家的等级为 53,则只想显示其等级或以下的武器。我需要展示最好的武器(在顶部),这就是为什么我想从最后一个索引循环的原因。有谁能帮帮我吗?

编辑: 谢谢帮助。仍然存在一个问题,我需要稍后更改此表格。它显示所有的内容都很好,但我稍后需要购买此(更改后的)列表中的所有物品。所以我必须以某种方式替换这两个表格。有什么简单的方法吗?我尝试从此表中删除元素,但仍然不起作用。

还是可以在Lua中制作一些映射吗?它必须是动态大小,所以我猜不能使用表。带着键 - 值的东西

点赞
用户3979429
用户3979429

一个数值的 for 循环,计数器是倒序的,是最好的选择:

local t = {2,4,6,8}

for i = #t, 1, -1 do
    print(t[i])
end
2016-02-06 05:47:06
用户5043289
用户5043289

假设表格不一定按级别顺序排序(与示例不同),我们需要做两件事情:

  • 找到哪些剑在级别范围内
  • 按降序将它们排序

现在,临时表中的第一个是“最佳”的剑。

代码如下:

bestSword = {
  {name = 'www' , lvl = 35, atk = 38, npcPrice = 15000 , buyPrice = 0},
  {name = 'bbb' , lvl = 40, atk = 40, npcPrice = 20000 , buyPrice = 0},
  {name = 'eee' , lvl = 50, atk = 42, npcPrice = 25000 , buyPrice = 0},
  {name = 'sss' , lvl = 55, atk = 43, npcPrice = 30000 , buyPrice = 0},
  {name = 'aaa' , lvl = 60, atk = 44, npcPrice = 30000 , buyPrice = 0},
  {name = 'qwe' , lvl = 70, atk = 46, npcPrice = 35000 , buyPrice = 0},
  {name = 'asd' , lvl = 82, atk = 48, npcPrice = 60000 , buyPrice = 0}
}

myLevel = 53  --想要的级别

--临时表
possible = { }

--提取符合级别范围的剑
for k, v in ipairs (bestSword) do
  if v.lvl <= myLevel then
    table.insert (possible, v)
  end --如果
end --对于

if #possible == 0 then
  print "没有符合要求的剑"
else
  table.sort (possible, function (a, b) return a.atk > b.atk end )
  bestSword = possible [1]
  print ("最佳剑是", bestSword.name, "级别 =", bestSword.lvl,
         "攻击力 =", bestSword.atk)
end --如果

或者我可以在 Lua 中创建一些地图吗?它必须是动态大小的,所以我猜我不能使用表格。像键 - 值之类的东西。

在Lua中,表格就是地图。每个表格都有键/值对。你在那里使用的只是按数字键排序的表格。

所有的表格都是动态大小的。

2016-02-06 21:22:08