排序表格 - Lua

我正在尝试进行排序,但实际上存在一个nil值。我该怎样解决这个问题?

使用的代码:(按名称和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

原文链接 https://stackoverflow.com/questions/1656595

点赞
stackoverflow用户23153
stackoverflow用户23153

假设您想按 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

您的问题是,如果名称不是始终可用的真实键,则 Name 不是真实键。

2009-11-01 07:53:06