Javascript 如何根据特定值对json数据进行排序?

Javascript 如何根据特定值对json数据进行排序?,javascript,jquery,json,sorting,Javascript,Jquery,Json,Sorting,我使用此代码获取以下Json数据 function nextDepartures(minutes=120) { var modeId = 0; var stopId = 1042; var limit = 2; xhr(broadNextDeparturesURL(modeId, stopId, limit), broadNextDeparturesCallback); var nowDate = new Date(); nowDate.setMinutes(nowDate.getMinut

我使用此代码获取以下Json数据

function nextDepartures(minutes=120)
{
var modeId = 0;
var stopId = 1042;
var limit = 2;

xhr(broadNextDeparturesURL(modeId, stopId, limit), broadNextDeparturesCallback);

var nowDate = new Date();
nowDate.setMinutes(nowDate.getMinutes()+minutes); 



for(var i =0; i < broadjson[0].values.length;i++) {
    var date = new Date(broadjson[0].values[i].time_timetable_utc);
    var minutes;
    if (date < nowDate) {
        if (date.getMinutes() < 10) {
            minutes = "0" + date.getMinutes();
        }
        else {
            minutes = date.getMinutes();
        }

    else  {

        document.getElementById("depart").innerHTML += "<tr>" +
            "<td width='30%'>" + date.getHours() + ":" + minutes + "</td>" +
            "<td>" + broadjson[0].values[i].platform.direction.line.line_number +
            " "
            + broadjson[0].values[i].platform.direction.direction_name + "</td>" +

            "</tr>";
    }
    }
}
}
我想把这些数据按

values.platform.direction.line.line_number
这意味着将首先显示最低行号,最后显示最高行号。我尝试了Javascript函数sort(a,b),但它不起作用。问题是

values.platform.direction.line.line_number

是一个字符串值。那么,如何根据返回整数但以字符串形式存在的行号对数组进行排序呢?

使用parseInt解析作为字符串传入的数字,并使用javascript排序函数对数组进行排序,如下所示

myArray.sort(function(a, b){
    var lineA = parseInt(a.line_number),
        lineB = parseInt(b.line_number);
    if(lineA < lineB)  return -1;
    if(lineA > lineB) return 1;
    return 0;
});
myArray.sort(函数(a,b){
var lineA=parseInt(a.line_编号),
lineB=parseInt(b.行号);
如果(lineAlineB)返回1;
返回0;
});

您可以直接使用
行号的增量进行排序。负号将两部分都转换为数字

var数据={
价值观:[
{平台:{方向:{线路:{线路编号:“250”}}},
{平台:{方向:{线路:{线路编号:“150”}}},
{平台:{方向:{线路:{线路编号:“110”}}}
]
};
数据.值.排序(函数(a,b){
返回a.platform.direction.line.line\u编号-b.platform.direction.line.line\u编号;
});
控制台日志(数据)

。作为控制台包装器{max height:100%!important;top:0;}
使用javascript排序函数和compare param在stackoverflow中曾经问过类似的问题。查看此链接。检查此答案,您可以使用javascript排序函数解析int并比较值。可能重复
myArray.sort(function(a, b){
    var lineA = parseInt(a.line_number),
        lineB = parseInt(b.line_number);
    if(lineA < lineB)  return -1;
    if(lineA > lineB) return 1;
    return 0;
});