2016-03-21 11 views
-1

, wenn ich ein Array wie habe:Sortier Array von bestimmtem Wert in Javascript

var myArray = [] 

for(i = 0; i < 10; i++) { 
myArray.unshift({ 
    myString: 'string'+ i +'', 
    myValue: i; 
}); 
} 

und will es sortieren durch die ‚myValue‘ Werte. wie

myArray.myValue.sort (function(a, b){return a-b}); 

funktioniert dies jedoch nicht.

+2

können Sie die Beispieleingabe und -ausgabe freigeben? – gurvinder372

+0

So etwas ähnliches? 'myArray.sort (Funktion a, b) {return a.myValue - b.myValue})' – Matthijs

+0

Er möchte nur eine bestimmte Eigenschaft der Objekte im Array sortieren und die anderen Eigenschaften unberührt lassen - er will nicht sortieren das gesamte Array * durch * eine Eigenschaft. – TheHansinator

Antwort

1

Sie meinen, dass Sie sortieren möchten nach myValue?

myArray.sort(function a, b) { 

    return a.myValue - b.myValue; 

}); 
0

Wenn Sie nur ein Objekt-Eigenschaft sortiert werden soll (während der Rest unverändert bleibt), was Sie tun müssen, ist eine Kopie dieser speziellen Eigenschaft jedes Element im Array zu machen, sortieren, und dann Kopieren Sie die Eigenschaften zurück:

// make a copy of the myValues into a new array containing just those 
var myValueArray = myArray.map(function(item) { return item.myValue; }); 
// sort just the myValues in the copy 
myValueArray.sort(); 
// copy the sorted myValues back 
myValueArray.forEach(function(item, index){ myArray[index].myValue = item; });