Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不使用排序方法的情况下按日期对数组中的对象进行排序?_Javascript_Sorting - Fatal编程技术网

Javascript 如何在不使用排序方法的情况下按日期对数组中的对象进行排序?

Javascript 如何在不使用排序方法的情况下按日期对数组中的对象进行排序?,javascript,sorting,Javascript,Sorting,对于一个我必须为学校做的项目,我必须提出一个可以按日期和时间对约会进行排序的申请。我有一个包含对象的数组,但由于日期是嵌套的,所以我不知道如何按日期排序 下面是我制作的bubblesort函数: function bubbleSort() { const loop = listOfAppointments.length; for(let i = 0; i < loop; i++) { for(let j = 0; j < loop; j++) {

对于一个我必须为学校做的项目,我必须提出一个可以按日期和时间对约会进行排序的申请。我有一个包含对象的数组,但由于日期是嵌套的,所以我不知道如何按日期排序

下面是我制作的bubblesort函数:

function bubbleSort() {
    const loop = listOfAppointments.length;

    for(let i = 0; i < loop; i++) {
        for(let j = 0; j < loop; j++) {
            if(listOfAppointments[j] > listOfAppointments[j+1]) {
                let temp = listOfAppointments[j];
                listOfAppointments[j] = listOfAppointments[j+1];
                listOfAppointments[j+1] = temp;
            }
        }
    }
}
谢谢

试试这个

function bubbleSort() {
    const loop = listOfAppointments.length;

    for(let i = 0; i < loop; i++) {
        for(let j = i+1; j < loop; j++) {
            if(new Date(listOfAppointments[i].Appointment.time) > new Date(listOfAppointments[j].Appointment.time)) {
                let temp = listOfAppointments[i];
                listOfAppointments[i] = listOfAppointments[j];
                listOfAppointments[j] = temp;
            }
        }
    }

}
函数bubbleSort(){
const loop=listofappoints.length;
for(设i=0;i新日期(ListofAppoints[j].Appointment.time)){
设temp=应用列表[i];
应用列表[i]=应用列表[j];
应用列表[j]=温度;
}
}
}
}
试试这个

function bubbleSort() {
    const loop = listOfAppointments.length;

    for(let i = 0; i < loop; i++) {
        for(let j = i+1; j < loop; j++) {
            if(new Date(listOfAppointments[i].Appointment.time) > new Date(listOfAppointments[j].Appointment.time)) {
                let temp = listOfAppointments[i];
                listOfAppointments[i] = listOfAppointments[j];
                listOfAppointments[j] = temp;
            }
        }
    }

}
函数bubbleSort(){
const loop=listofappoints.length;
for(设i=0;i新日期(ListofAppoints[j].Appointment.time)){
设temp=应用列表[i];
应用列表[i]=应用列表[j];
应用列表[j]=温度;
}
}
}
}

首先,您不需要外部循环(计算
i
变量的循环),因为它根本不被使用

我建议将
bubbleSort
函数更改为接受两个参数:一个要排序的列表和一个谓词函数。谓词函数应该有两个参数(每个参数都是约会),并且它应该返回
true
/
false
。使用谓词的结果进行排序:如果谓词返回
true
进行排序,否则不进行排序

下面是一个工作实现。
最早的
最早的
函数是谓词

注意:显示的
bubbleSort
函数是纯函数,这意味着它不修改给定的list参数,而是创建list的克隆并对该克隆进行排序。如果你不想,你不必这样做。不过,我鼓励你这样做

const约会=[
{
“任命”:{
“Id”:2,
“姓名客户”:“Henk Jan”,
“addresdCustomer”:“Nowhere中部34号Something Street”,
“时间”:“2020-01-07T10:00:00Z”,
“理由”:“胡言乱语”
}
},
{
“任命”:{
“Id”:1,
“姓名客户”:“Jan Jaap”,
“addresdCustomer”:“某物展馆54号,位于Nowhere中部”,
“时间”:“2020-01-07T12:15:00Z”,
“理由”:“胡言乱语”
}
},
{
“任命”:{
“Id”:3,
“nameCustomer”:“如此迷失”,
“addresdCustomer”:“234号附近的某处,不远处的中间地带”,
“时间”:“2020-01-07T11:30:00Z”,
“理由”:“胡言乱语”
}
}
];
//bubbleSort::数组->函数->数组
函数bubbleSort(列表,谓词){
const size=list.length-1;//Date.parse(b.Appointment.time);
}
//mostRecent::约会->约会->布尔值
功能最接近(a,b){
返回Date.parse(a.Appointment.time)console.log('Most recent',bubbleSort(约会,mostRecent))
首先,您不需要外部循环(计算
i
变量的循环),因为它根本不被使用

我建议将
bubbleSort
函数更改为接受两个参数:一个要排序的列表和一个谓词函数。谓词函数应该有两个参数(每个参数都是约会),并且它应该返回
true
/
false
。使用谓词的结果进行排序:如果谓词返回
true
进行排序,否则不进行排序

下面是一个工作实现。
最早的
最早的
函数是谓词

注意:显示的
bubbleSort
函数是纯函数,这意味着它不修改给定的list参数,而是创建list的克隆并对该克隆进行排序。如果你不想,你不必这样做。不过,我鼓励你这样做

const约会=[
{
“任命”:{
“Id”:2,
“姓名客户”:“Henk Jan”,
“addresdCustomer”:“Nowhere中部34号Something Street”,
“时间”:“2020-01-07T10:00:00Z”,
“理由”:“胡言乱语”
}
},
{
“任命”:{
“Id”:1,
“姓名客户”:“Jan Jaap”,
“addresdCustomer”:“某物展馆54号,位于Nowhere中部”,
“时间”:“2020-01-07T12:15:00Z”,
“理由”:“胡言乱语”
}
},
{
“任命”:{
“Id”:3,
“nameCustomer”:“如此迷失”,
“addresdCustomer”:“234号附近的某处,不远处的中间地带”,
“时间”:“2020-01-07T11:30:00Z”,
“理由”:“胡言乱语”
}
}
];
//bubbleSort::数组->函数->数组
函数bubbleSort(列表,谓词){
const size=list.length-1;//Date.parse(b.Appointment.time);
}
//mostRecent::约会->约会->布尔值
功能最接近(a,b){
返回Date.parse(a.Appointment.time)console.log('Most recent',bubbleSort(约会,mostRecent))
根据我记忆中的bubbleSort算法。
应该是这样的

时间将转换为日期以进行比较

第二个循环将最高的循环推向终点。
因此,每次运行都需要少循环1个索引

函数bubbleSortAppointment(arr){
对于(设i=arr.length-1;i>0;i--){
for(设j=0;jdate2.getTime()){
让临时工