I have Object with arrays like below , I am trying to sort it ascending and descending by its value (rank)
AXISBANK: [rank: 110, bnrank: 110, bs: 75, ss: 3]
BANKBARODA: [rank: 32, bnrank: 5, bs: 83, ss: 26]
HDFCBANK: [rank: 453, bnrank: 453, bs: 52, ss: 33]
So output array is like below if descending .. and reverse for ascending
HDFCBANK: [rank: 453, bnrank: 453, bs: 52, ss: 33]
AXISBANK: [rank: 110, bnrank: 110, bs: 75, ss: 3]
BANKBARODA: [rank: 32, bnrank: 5, bs: 83, ss: 26]
I tried following code
scorearr.sort((obj1, obj2) => obj1.bnrank - obj2.bnrank);
And also below code
function compares(a,b) {
console.log(a.bnrank);
if (a.bnrank < b.bnrank)
return -1;
if (a.bnrank > b.bnrank)
return 1;
return 0;
}
scorearr.sort(compares);
Still scorearr is unchanged and its in old order only.
Edit : Below is sample data
{
"HDFCBANK": {
"rank": 453,
"bnrank": 453,
"bs": 52,
"ss": 33
},
"ICICIBANK": {
"rank": 228,
"bnrank": 228,
"bs": 88,
"ss": 3
},
"KOTAKBANK": {
"rank": 164,
"bnrank": 164,
"bs": 23,
"ss": 82
}
}
This is how I am creating this object ,please tell me if any alternative if this thing can be done easily.
var scorearr = {};
//loop here
var id = $(this).attr('id');
scorearr[id] = {};
scorearr[id] = {rank:nfscore,bnrank:bnscore,bs:sellscore,ss:buyscore};
//end loop