Reputation: 23
I have below code where I need to do sorting by underscore JS based on value of (y).
Please find my code below. I am trying to do ascending first and then reverse. Unfortunately, it is not doing the sorting at all for me and shows data without sorting.
function getMessageNames(){
var rowIter = 1;
//document.getElementById("demo2").innerHTML += "from getMessageNames="+calltypes;
for (var i in calltypes){
keyId = calltypes[i].label;
for (var index in keyMsgNames){
if(keyMsgNames[index].Id == keyId){
var row = {"label":keyMsgNames[index].Name,"y":calltypes[i].y};
messageNames.push(row);
break;
}
}
// Result:
//document.getElementById("demo2").innerHTML += "descending="+descending;
}
var ascending = _.sortBy(messageNames, ['y']);
// Then get DESC
var descending = ascending.reverse();
for (var index in descending){
addRow("CallTable", [ descending[index].label, descending[index].y], rowIter++);
}
createChart(descending,"Distribution on Key Messages",chartContainer);
}
function createChart(data,title,container){
var chart = new CanvasJS.Chart(container, {
animationEnabled: true,
title: {
text: title
},
data: [{
type: "pie",
startAngle: 240,
yValueFormatString: "",
indexLabel: "{label} '('{y}')'",
dataPoints: data
}]
});
chart.render();
}
function addRow(tblName, colData, rowNum){
var table = document.getElementById(tblName);
var tableRow = table.insertRow(rowNum);
for (var index in colData){
var cell = tableRow.insertCell(index);
cell.innerHTML = colData[index];
}
}
Upvotes: 0
Views: 881