【问题标题】:How can I sort an array of objects based on two of the obects' properties?如何根据对象的两个属性对对象数组进行排序?
【发布时间】:2013-11-05 16:50:31
【问题描述】:

我有以下对象数组:

eventJsonArr[0] = { eventName: "Event One", eventYear "2012"}
eventJsonArr[1] = { eventName: "Event Two", eventYear "2011"}
eventJsonArr[2] = { eventName: "Event Three", eventYear "2012"}
eventJsonArr[3] = { eventName: "Event Four", eventYear "2013"}
eventJsonArr[4] = { eventName: "Event Five", eventYear "2010"}
eventJsonArr[5] = { eventName: "Event Six", eventYear "2011"}

无论如何我可以根据每个对象的属性对这个数组进行排序吗?简而言之:我所需要的只是能够先按eventYear 降序对对象数组进行排序,然后再按eventName 升序排序。

如果eventName 和eventYear 是列,数组的每个索引都是行,并且它包含ORDER BY eventYear DESC, eventName ASC,我想我需要它来准确模拟SQL 会做什么。

我需要将其与“页面预览”一起使用,因此它的行为必须与我设置的查询实际数据库的页面完全相同(如上所述)。

其他信息:

我实际上是 .push()在 jquery .each() 循环中一次一个地输入值,所以如果需要做一些事情,因为我实际上是在将值添加到数组中,而不是实际对数组进行排序完整的值,这可以做到(虽然,我不确定那里需要的逻辑)。

这是我在发布此问题之前所做的尝试:

eventJsonArr.sort() //As a start, just to see what it did.

然后:

evenJsonArr.sort(function(a, b) { //I got the basic function to sort, which it did.
    a.eventYear - b.eventYear
});

除了这个功能,我真的找不到任何与我的情况相关的东西。至少不是我发现的。

以下是我试图研究以帮助我的一些页面:

【问题讨论】:

    标签: javascript jquery arrays object


    【解决方案1】:

    “我所需要的只是能够首先按eventYear 以descending 的顺序对对象数组进行排序,然后按eventName 的ascending 顺序对对象数组进行排序。” p>

    eventJsonArr.sort(function(a, b) {  //     eventYear DESC
        return a.eventYear !== b.eventYear ? b.eventYear - a.eventYear :
                                             a.eventName.localeCompare(b.eventName);
    });                                 //     eventName ASC
    

    【讨论】:

      猜你喜欢
      • 2015-06-17
      • 1970-01-01
      • 2023-02-03
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 1970-01-01
      相关资源
      最近更新 更多