Javascript 按两种条件排序的对象数组
我有一个对象数组。我需要使用两个条件对其进行排序Javascript 按两种条件排序的对象数组,javascript,arrays,sorting,object,Javascript,Arrays,Sorting,Object,我有一个对象数组。我需要使用两个条件对其进行排序 [{ id: 412, start_date: 1488479400, status: 1 }, { id: 560, start_date: 1499451100, status: 0 }, { id: 112, start_date: 1499091200, status: 0 }, { id: 512, start_date: 1488474500, status: 1 }, { id: 750, start_date: 148347310
[{
id: 412,
start_date: 1488479400,
status: 1
}, {
id: 560,
start_date: 1499451100,
status: 0
}, {
id: 112,
start_date: 1499091200,
status: 0
}, {
id: 512,
start_date: 1488474500,
status: 1
}, {
id: 750,
start_date: 1483473100,
status: 1
}, {
id: 123,
start_date: 1499106600,
status: 0
}, ]
我需要使用两个条件对其进行排序
[{
id: 412,
start_date: 1488479400,
status: 1
}, {
id: 560,
start_date: 1499451100,
status: 0
}, {
id: 112,
start_date: 1499091200,
status: 0
}, {
id: 512,
start_date: 1488474500,
status: 1
}, {
id: 750,
start_date: 1483473100,
status: 1
}, {
id: 123,
start_date: 1499106600,
status: 0
}, ]
[{
id: 750,
start_date: 1483473100,
status: 1
}, {
id: 512,
start_date: 1488474500,
status: 1
}, {
id: 412,
start_date: 1488479400,
status: 1
}, {
id: 112,
start_date: 1499091200,
status: 0
}, {
id: 123,
start_date: 1499106600,
status: 0
}, {
id: 560,
start_date: 1499451100,
status: 0
}, ]
我所尝试的是遵循
将数组分配给数据,然后
data.sort(函数(a,b){返回a.start\u日期-b.start\u日期()})代码>
但它没有使用开始日期进行排序
您可以使用和排序函数,并使用链式方法作为排序标准。你可以直接使用
它通过评估第一个增量来工作,并检查vakue us truthy,即在这种情况下,该值小于1或大于1。如果该值为零,则两个状态值相等,并计算该时间的下一个增量。然后返回结果
.as console wrapper{max height:100%!important;top:0;}
对于排序条件,可以使用和一个带有链式方法的排序函数。你可以直接使用
它通过评估第一个增量来工作,并检查vakue us truthy,即在这种情况下,该值小于1或大于1。如果该值为零,则两个状态值相等,并计算该时间的下一个增量。然后返回结果
.as console wrapper{max height:100%!important;top:0;}
b.start_date()
它不是一个函数。日期的格式在你的小提琴中不一样(事实上,在你的小提琴中,它可能没有达到你的预期,因为01-01-2017
没有引号的是数字-2017(1减1减2017).你的真实数据是否有你问题中所示的开始日期
?b.开始日期()
它不是一个函数。日期的格式在你的小提琴中不一样(事实上,在你的小提琴中,它可能没有达到你的预期,因为01-01-2017
没有引号的是数字-2017(1减1减2017)。您的真实数据是否具有如您的问题所示的开始日期
?很好地使用了|
-我以前没有想过在排序函数中这样做。我认为您已经将主要排序向后进行了。(我怀疑OP也需要更多地解释它的工作原理。)仅供参考:状态:1
似乎是代码中的最后一位,OP要求他们来first@haxxxton您可以简单地反转表达式,使状态1首先出现:b.status-a.status状态具有状态1
的对象应该首先出现,然后0
应该出现come@ifadey,我同意这很简单:)如果要将其标记为答案,我希望它符合OPNice使用|
-之前我没有想过在排序函数中这样做。我认为您已经将主要排序向后进行了。(我怀疑OP也需要更多地解释它的工作原理。)仅供参考:状态:1
似乎是代码中的最后一位,OP要求他们来first@haxxxton您可以简单地反转表达式,使状态1首先出现:b.status-a.status状态具有状态1
的对象应该首先出现,然后0
应该出现come@ifadey,我同意这很简单:)如果它被标记为答案,我希望它符合OP概述的标准