2012-08-17 90 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是常规的。