gpt4 book ai didi

javascript - 在javascript中按照多个规则对对象数组进行排序

转载 作者:行者123 更新时间:2023-11-29 21:56:26 26 4
gpt4 key购买 nike

所以我有一个对象数组,我想按照以下两个规则(按优先级顺序)对它们进行排序:

  1. 数字必须按数字顺序
  2. 时间必须按时间顺序

所以,我希望对象不仅按数字排序,而且还按时间排序。例如,这样就可以了。

  • 005: 凌晨 2 点
  • 005: 凌晨 3 点
  • 005: 凌晨 4 点
  • 006: 凌晨 2 点
  • 006:凌晨 3 点

这是我们感兴趣的对象部分的结构:

var notSortedData = {
number: number, // it's a string
scheduled_date: scheduled_date, // the format is "YYYY-MM-DD HH:MM:SS"
}

sortedTrains.push(notSortedData);

因此,notSortedData 通过 for 循环被插入 sortedTrains。然后我这样做,但这还不够(因为它不符合我的第二个条件):

// sorts all the numbers numerically
sortedTrains.sort(function(a, b) {
return parseInt(a.number) - parseInt(b.number);
});

我需要做什么来确保我的第二个条件也得到遵守?谢谢!

最佳答案

你可以试试这个:

sortedTrains.sort(function(a, b) {
// We parse the numbers
var num1 = parseInt(a.number), num2 = parseInt(b.number);
if (num1 != num2) return num1 - num2; // Return the difference IF they are not equal
var date1 = new Date(a.scheduled_date), date2 = new Date(b.scheduled_date);
// We only get here if the numbers are equal
return date1 - date2;
});

关于javascript - 在javascript中按照多个规则对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26328871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com