ΠΡΠΈΠ²Π΅Ρ,
ΠΊΠ°ΠΊ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ? ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡ ΡΠΎΡΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ Π΄Π°ΡΠ΅,
Π½ΠΎ ΠΌΠ½Π΅ Π±Ρ ΠΎΠ½ΠΈ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΈΡΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ toArray()
ΠΈ reverse()
ΠΊΠ°ΠΆΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ΠΊΡΠ°ΡΠΈΠ²ΡΠΌ.
ΡΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ Ρ Π½Π΅ ΡΠΏΡΡΠΊΠ°Ρ Π·Π΄Π΅ΡΡ ΡΡΠΎ-ΡΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅, Ρ Π±Ρ ΠΏΡΠΎΠ³ΠΎΠ»ΠΎΡΠΎΠ²Π°Π» Π·Π° Π°ΡΡΠΈΠ±ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠ°Π³ΠΈΡΡΡΠ°Π»ΠΈ, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ
ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΠΎΠΌ.
ΡΡΠ°,
ΠΡΠ½ΠΈΠ΅Π»
ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ - Π²Π΅ΡΠ½ΡΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΠΊΡΠΈΡΠ΅ΡΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.
comparator : function(model) {
return -model.get('date');
}
ΠΠ°ΠΊ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΏΠΎ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ?
ΠΡΠ»ΠΈ Π²ΡΠ΅, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ, ΡΡΠΎ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π² Date ΡΠ°Π½ΡΡΠ΅?
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈ ΡΡΠΎ ΡΠ΅ΡΠΈΠ»ΠΎ Π΅Π΅.
comparator : function(model) {
return -new Date(model.get('date'));
}
ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π΄Π°Ρ (ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² ΡΠΈΡΠ»Π°, Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠ°Π²ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡ -), Π½ΠΎ Π½Π΅ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΡΡΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ Π°Π»ΡΠ°Π²ΠΈΡΡ.
ΠΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΡΠ°Π²Ρ, Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠ», ΡΡΠΎ Π²Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅ ΠΎ Π΄Π°ΡΠ°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, OP), Π½ΠΎ Π²Π°ΡΠ° Π΄Π°ΡΠ° Π±ΡΠ»Π° ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ. Π’ΠΎΠ³Π΄Π° ΠΌΠΎΡ ΠΎΡΠΈΠ±ΠΊΠ° :).
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ Backbone (ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠ°ΡΡΠ΅Ρ) Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ sort
Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΠΎΠ² (Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ sortBy
), ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΅Π³ΠΎ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
comparator: function(a, b) {
...
}
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π° Π΄ΡΡΠ³ΠΈΠ΅ - Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ? ΠΠ°ΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΠ° ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π½Π΅Ρ Collection.reverse (), ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ (ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ).
@ elwayman02 ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ 2 ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ (ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Collection # clone)
ΠΡΠΎ Π½Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ... Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅ΡΠΊΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π±ΡΠ΄Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ . ΠΠ΅Ρ ΡΠΌΡΡΠ»Π° ΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΄Π²Π° ΡΠ°Π·Π½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
Π― ΡΠΎΡ ΡΠ°Π½ΠΈΠ» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΠΎΠ² Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΠ» ΠΈΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
var Collection = Backbone.Collection.extend({
comparators: {
a: function () {},
b: function () {}
},
setComparator: function (key) {
this.comparator = this.comparators[key];
return this;
}
});
var collection = new Collection();
collection.setComparator('a').sort();
collection.setComparator('b').sort();
ΠΡΠΎ Π»ΡΡΡΠΈΠΉ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ, Ρ ΠΎΡΡ Ρ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΠ°Π³ΠΈΡΡΡΠ°Π»Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»Π° ΠΌΠ΅ΡΠΎΠ΄ reverse ().
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ
collection.set(collection.models.reverse(), {sort: false});
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ