-3

次のオブジェクトの配列があります。

eventJsonArr[0] = { eventName: "Event One", eventYear "2012"}
eventJsonArr[1] = { eventName: "Event Two", eventYear "2011"}
eventJsonArr[2] = { eventName: "Event Three", eventYear "2012"}
eventJsonArr[3] = { eventName: "Event Four", eventYear "2013"}
eventJsonArr[4] = { eventName: "Event Five", eventYear "2010"}
eventJsonArr[5] = { eventName: "Event Six", eventYear "2011"}

とにかく、各オブジェクトのプロパティに基づいてこの配列を並べ替えることができますか? 要するに、私が必要とするのは、最初にオブジェクトの配列をeventYear降順でソートし、次にeventName昇順でソートできることだけです。

とが列で、配列の各インデックスが行で、含まれてeventNameいる.eventYearORDER BY eventYear DESC, eventName ASC

これを「ページ プレビュー」で使用する必要があるため、実際のデータベースをクエリするように設定したページとまったく同じように動作する必要があります (上記のとおり)。

追加情報:

私は実際に.push()jquery.each()ループで一度に 1 つずつ値を ing しているので、完全な値の配列を実際にソートするのではなく、実際に配列に値を追加しているときに何かを行う必要がある場合は、これを行うことができます (ただし、そこで必要なロジックはわかりません)。

この質問を投稿する前に私が試したことは次のとおりです。

eventJsonArr.sort() //As a start, just to see what it did.

その後:

evenJsonArr.sort(function(a, b) { //I got the basic function to sort, which it did.
    a.eventYear - b.eventYear
});

この機能以外に、自分の状況に関連するものは何も見つかりませんでした。少なくとも私が見つけたわけではありません。

ここに私が私を助けるために調査しようとしたいくつかのページがあります:

4

1 に答える 1

4

「私が必要とするのは、オブジェクトの配列を最初eventYeardescending順番に並べ替え、次に順番eventNameに並べ替えることができることだけascendingです。」

eventJsonArr.sort(function(a, b) {  //     eventYear DESC
    return a.eventYear !== b.eventYear ? b.eventYear - a.eventYear :
                                         a.eventName.localeCompare(b.eventName);
});                                 //     eventName ASC
于 2013-11-05T17:01:35.483 に答える