Coding Duchess
Coding Duchess

Reputation: 6899

Sorting arrays using React js

I am attempting to display array values sorted by OrderId field. Here is my code:

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')); 

This does not give me errors and displays the values in a desired format but unsorted... How can I sort in Reactjs world?

Upvotes: 0

Views: 13686

Answers (1)

Ayush Sharma
Ayush Sharma

Reputation: 2107

First of all check your field name it should be OrderId for all the three, in question it is not and remove any extra quotes as well.

Then for sorting purpose, i dont know about sortBy method, you can use sort method easily, check out this example code below, and let me know if it will work for you -

JS fiddle 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);

Upvotes: 6

Related Questions