排序表 - Lua

时间:2009-11-01 07:19:24

标签: lua

我正在尝试排序但是有一个零。我怎么能绕过这个?

使用代码:(按名称和HP排序。万一HP有重复)

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

function Sorting(T)
    table.sort(T, 
        function(x,y)
            return x.Name < y.Name and x.HP < y.HP
        end
    )
end

1 个答案:

答案 0 :(得分:3)

假设您想要通过HP进行比较,如果名称不可用,那么您如何将排序比较功能更改为:

function(x, y)
  if x.Name == nil or y.Name == nil then return x.HP < y.HP
  else return x.Name < y.Name and x.HP < y.HP
  end
end

您的问题是,如果名称不是一直无法使用,那么名称就不是真正的密钥。