0

Personsというオブジェクト配列があり、そのメンバーの1つで並べ替えたいのですが、javascriptプロロタイプを初めて使用しますが、これを行う方法がわかりません。オブジェクトは次のようになります。

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

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

したがって、オブジェクトPersonsの配列用にさらにいくつかのアイテムがあります。のようなことをすることで名前にアクセスできることを私は知っていますthis.Persons[0].Name。しかし、どうすれば名前で並べ替えることができますか?

どうもありがとうございます

4

1 に答える 1

1

プロトタイプなしでこれを行うことができます:

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

sort次の値のいずれかを返す限り、関数内から必要なオブジェクトの任意のプロパティを使用します。

  • (-1) a が最終的な配列で b の前に現れる場合
  • (1) a が b の後に現れる場合
  • (0) ソートされている 2 つのアイテムが同一である場合

実際には、負または正の数値は戻り値として機能しますが-11慣習的です。

于 2012-08-17T18:30:10.100 に答える