2012-08-17 88 views
0

我有一個名爲Persons的對象數組,並且想按其成員之一進行排序,我對JavaScript prorotype不熟悉,不確定如何執行此操作。對象看起來像這樣:使用原型對對象排序

[ Object { EntityId=0, Name="Edibert", Number="1234", Value=""}] 

[ Object { EntityId=0, Name="Jairo", Number="1234", Value=""}] 

因此,它有一些對象人數的更多項目。我知道我可以通過執行類似this.Persons[0].Name的訪問來訪問該名稱。但我怎麼能按名稱排序?

太感謝你了

+0

你可以使用這樣的小型庫來幫助:https://github.com/webadvanced/jsLINQ – Paul 2012-08-17 18:31:05

回答

1

你可以做到這一點沒有原型:

Persons.sort(function(a,b) { 
    if(a.Name < b.Name) { return -1; } 
    if(a.Name > b.Name) { return 1; } 
    return 0; 
}); 

使用您從sort函數中想要的對象的任何屬性,只要你返回下列值之一:

  • (-1)如果是最後的陣列中的b之前出現
  • (1)如果一個是出現b
  • (0)如果被分類的兩個項目是相同的

在現實中,任何負或正數將工作作爲返回值,但-11是常規的。