按日期/时间值对JSON数据进行排序

时间:2014-07-07 16:13:07

标签: json sorting

希望有人可以帮助完成这项小任务。我有一个文本块数组,分配有DateTime值。我想发布那些按DateTime排序的文本块,以便最新更新的项目始终位于顶部。

这是脚本:

function jsonCallBack(data) {
  var strRows = "";

  $.each(data.News, function(i, item) { 
    var htmlNewsBody = item["htmlNewsBody"];            
    var maxLength = 120
    var trimmedString = htmlNewsBody.substr(0, maxLength);

    trimmedString = trimmedString.substr( 0, Math.min( trimmedString.length, 
                                                       trimmedString.lastIndexOf(" ") ) );

    strRows += "<div id='nrNewsItem-" + i + "'>";
    strRows += "<h3>" + item["txtTitle"] + "</h3>";
    strRows += "<p>" + item["dtDateTime"] + "</p>";
    strRows += "<p>" + trimmedString + "...</p>";
    strRows += "</div>"
  });

  $("#printHere").html(strRows);
};

还有一个working jsFiddle with JSON data

1 个答案:

答案 0 :(得分:1)

您可以添加自定义比较方法:

function compare(a,b) {
    if (a.dtDateTime < b.dtDateTime) {
        return 1;
    }
    if (a.dtDateTime > b.dtDateTime) {
        return -1;
    }
    return 0;
}

然后在你的函数中:

function jsonCallBack(data) {
    data.News.sort(compare);
    ....