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,我写这段代码是为了对日期字段fdate进行升序或降序排序,但我得到了这种排序的空白值。我需要的是,如果我按升序排序,如何将所有空白记录放在顶部,或者当我按降序排序时,如何将这些空白记录放在末尾 var数据集=[{ “字段1”:“dfg34r”, “字段2”:“32.24” }, { “字段1”:“d3f32dg”, “字段2”:“32.52”, “fdate”:“2015年3月2日” }, { “字段1”:“fdbhjjts”, “fdate”:“7/4/2015” }, { “字段1”:“d

我写这段代码是为了对日期字段
fdate
进行升序或降序排序,但我得到了这种排序的空白值。我需要的是,如果我按升序排序,如何将所有空白记录放在顶部,或者当我按降序排序时,如何将这些空白记录放在末尾

var数据集=[{
“字段1”:“dfg34r”,
“字段2”:“32.24”
}, {
“字段1”:“d3f32dg”,
“字段2”:“32.52”,
“fdate”:“2015年3月2日”
}, {
“字段1”:“fdbhjjts”,
“fdate”:“7/4/2015”
}, {
“字段1”:“dfg4r”,
“字段2”:“2.24”
}, {
“字段1”:“fgsdfwe”,
“fdate”:“2015年3月1日”
}];
dataset.sort(函数(a,b){
var x=新日期(a.f日期);
变量y=新日期(b.f日期);
返回x.valueOf()-y.valueOf();
});
document.getElementById(“demo”).innerHTML=JSON.stringify(数据集)

更通用的解决方案是检查属性是否丢失,然后返回
1
-1
以确定排序顺序。无论数据类型如何,这都有效

我添加了
因子
选项,您可以更改该选项以确定升序/降序

var数据集=[{“field1”:“dfg34r”,“field2”:“32.24”},{“field1”:“d3f32dg”,“field2”:“32.52”,“fdate”:“3/2/2015”},{“field1”:“fdbhjts”,“fdate”:“7/4/2015”},{“field1”:“dfg4r”,“field2.24”},{“field1”:“fgsdffwwe”,“fdate”:“3/1/2015”};
风险系数=1;//将降序更改为-1
dataset.sort(函数(a,b){
//如果a提案不存在
如果(!a.fdate){
回报系数*-1;
}
//如果b提案不存在
如果(!b.fdate){
回报系数*1;
}
返回系数*(新日期(a.fdate)-新日期(b.fdate));
});

console.log(数据集)
您昨天已经问了这个确切的问题:@Dekel我不知道该怎么办,在这个示例数据中,排序是有效的,但在实际数据中却不行!!这真的不是每天都提出完全相同问题的理由。如果你想得到更多的关注,你的问题会得到赏金(我想问题是这个问题不够清楚,但可能只有我一个人)。@Dekel这次我面对的是日期字段的问题,而不是任何其他类型的问题。如果fdate在1970年1月1日之前,这将被打破。这真的很奇怪,在这个示例数据中,排序工作正常,但在实际数据中,我得到的排序不正确@Oridori感谢这消除了空白或空记录,但排序本身不正确请参见带有实际数据的图像,以降序进行排序@Wel-您的日期格式错误-请在控制台中尝试此操作-
新日期('2015年4月23日')。将此日期更改为新日期('4/23/2015'),它会工作。有没有办法将日期重新格式化为月/日/年,因为我无法更改收到的数据