2017-01-26 7 views
0

Ich versuche Array-Werte sortiert nach OrderId Feld anzuzeigen. Hier ist mein Code:Array mit React js sortieren

var fields = 
    [{value: "Claims", OrderId:3 }, 
    {value: "Requests", OrderId:1 }, 
    {value: "Access", OrderId: 2}] 

var listElements = fields.sort('OrderId', function(n){ return Math.sin(n) }) 
    .map(function(field) { 
     return React.createElement('li', {}, 
      React.createElement('h2',{}, field.value) 

     ) 
    }) 
var rootElement = 
    React.createElement('div', {}, 
     React.createElement('ul', {}, listElements) 

    ) 

ReactDOM.render(rootElement, document.getElementById('container')); 

Dies nicht geben mir Fehler und zeigt die Werte in einem gewünschten Format aber unsortiert ... Wie kann ich irgendwie in Reactjs Welt?

+2

Woher kommt die sortBy-Methode? –

+1

Ich liebe lodash für diese Art von Sache. https://lodash.com/docs/4.17.4#sortBy – Joao

+0

Sie haben doublequotes in 'OrderId: 3" '. Ich nehme es si typo, die nicht im Code vorhanden ist. – luboskrnac

Antwort

2

Zuerst überprüfen Sie Ihre Feldname sollte es OrderId für alle drei sein, in Frage ist es nicht und entfernen Sie alle zusätzlichen Anführungszeichen sowie.

Dann Zweck zum Sortieren, nicht ich über sortBy Methode kennen, können Sie Sortiermethode leicht, lesen Sie in diesem Beispielcode unten, und lassen Sie mich verwenden wissen, ob es für Sie arbeiten wird -

JS Geige Link - https://jsfiddle.net/4kq4vbdw/

var fields = 
[{value: "Claims", OrderId:3 }, 
{value: "Requests", OrderId:1 }, 
{value: "Access", OrderId: 2}]; 

fields.sort(function(a,b){ 
return parseInt(a.OrderId) - parseInt(b.OrderId); 
}) 
console.log(fields); 
+0

danke! arbeitete wie ein Charme – ElenaDBA