2009-11-01 39 views
1

我想排序,但有一個零。我怎樣才能解決這個問題?排序表 - Lua

代碼IM期運用:(按名稱和惠普排序它萬一有重複的HPS)

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 
+0

使用縮進來自動格式化代碼示例。 – outis 2009-11-01 07:53:19

回答

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 

你的問題是,如果名稱不是所有的時間都是真正的鍵。