Lua - 表格打印和排序中的表格

时间:2009-11-01 05:02:43

标签: lua

T = {
{Name = "Mark", HP = 54, Breed = "Ghost"},
{Name = "Stan", HP = 24, Breed = "Zombie"},
{Name = "Juli", HP = 100, Breed = "Human"}},

问题:

我如何打印名称?

如何通过惠普对其进行排序?

1 个答案:

答案 0 :(得分:7)

您需要使用pairsipairs函数来遍历表格以打印名称。 ipairs从1迭代到N(仅限数字索引),而pairs每个元素上迭代,没有定义的顺序。

> T = { {Name = "Mark", HP = 54, Breed = "Ghost"}, {Name = "Stan", HP = 24, Breed = "Zombie"}, {Name = "Juli", HP = 100, Breed = "Human"}}
> for _,t in ipairs(T) do print(t.Name) end
Mark
Stan
Juli

然后您可以使用table.sort函数对表格进行现场排序

> table.sort(T, function(x,y) return x.HP < y.HP end)
> for _,t in ipairs(T) do print(t.Name, t.HP) end
Stan    24
Mark    54
Juli    100

table.sort的第二个参数是您选择的比较函数;在这种情况下,我们只想比较HP值。