2016-04-06 9 views
-2

In dem Framework, das ich verwende, muss ich eine Sortierfunktion für mein Array übergeben. Das Problem ist, dass ich nicht möchte, dass sich die Sorte ändert. Gibt es eine Sortierfunktion, die genau die gleiche Reihenfolge zurückgibt?Sortierfunktion, die die gleiche Sortierung zurückgibt

Beispiel:

var myObj= { 
    myArray:['value2','value49','value16'], 
    sort: function(a,b){} 
} 
myObj.myArray.sort(myObj.sort); 

Dies vereinfacht aber die Sortierfunktion erforderlich ist, und wird auf meinem Array ausgeführt werden, und ich habe keine Kontrolle über diese. Was würde es das Array in genau der gleichen Reihenfolge zurückgeben?

+1

können Sie den Code zueinander zeigen, a und b unverändert mit Respekt verlassen? –

+2

Eine ** Sortierfunktion ** oder eine ** Vergleichsfunktion **? (Eine ist die einfachste Funktion der Welt, die zweite existiert nicht) – Amit

+0

Können Sie etwas Code teilen? Und die genaue Definition der erwarteten Sort- (oder Compare-) Funktion – mmgross

Antwort

1

Ja:

function() {return 0} 

Nur 0 zurückgeben die Reihenfolge unverändert für jedes Paar von Array-Elementen zu verlassen. Also, gib es für alle zurück. Die MDN docs for .sort() das Verhalten der Methode beschreiben auf 0 zurückkehrt:

Wenn compareFunction (a, b) 0 zurück,

+0

Dieses Zitat endet dort nicht "... sondern in Bezug auf alle verschiedenen Elemente. Hinweis: Der ECMAscript-Standard garantiert dieses Verhalten nicht und somit auch nicht alle Browser (zB Mozilla-Versionen, die mindestens bis 2003 zurückreichen) respektieren das. " – Amit

Verwandte Themen