【问题标题】:Sort an array in Javascript/JQuery [duplicate]在Javascript / JQuery中对数组进行排序[重复]
【发布时间】:2014-05-17 00:01:03
【问题描述】:

有一个数组emails 具有很少的属性To, From, Subject, Description。我从数据库中检索记录并填充此数组中的所有行。我使用如下方式访问所有行:

 for (var i = 0; i < emails.length; i++) {
    var To = emails[i].To;
    var Sender = emails[i].Sender;
    var Subject = emails[i].Subject;
    var Description = emails[i].Description;
 }

现在我需要按To 值的字母顺序对该数组进行排序,并将排序后的电子邮件存储在另一个数组sortedemails 中。如何在 Javascript/JQuery 中以最简单的方式做到这一点?

谢谢。

【问题讨论】:

  • 按字母顺序按 To ?
  • 第一个链接是您问题的答案

标签: javascript jquery


【解决方案1】:

JavaScript 数组有一个内置的.sort 方法。无需循环(或需要 jQuery)。

emails.sort(function(a, b){
    return a.To.localeCompare(b.To);
});

这将修改email 数组。如果要保存原始(未排序的)数组,则需要在排序前复制数组。

var sortedemails = emails.slice(0);
sortedemails.sort(function(a, b){
    return a.To.localeCompare(b.To);
});

【讨论】:

    【解决方案2】:

    javascript 中的数组具有排序功能。

    emails.sort(function(a, b) { 
       if (a.To < b.To) {
         return -1;
       } else {
          return 1;
       }
    }
    

    【讨论】: