0
var array = [{"id":"0", "stopDate":null},
{"id":"1", "stopDate":"10/06/2014"},
{"id":"2", "stopDate":null},
{"id":"3", "stopDate":"09/06/2014"}];
我有上面的对象数组,并且希望使用下划线按停止日期进行排序。我正在使用以下功能来做到这一点。下划线排列
_.sortBy(array, "stopDate"); // asc
_.sortBy(array, "stopDate").reverse(); //desc
上述方法正确地对日期值进行排序,但忽略空值。所以asc的输出是
var actual= [{"id":"0", "stopDate":null},
{"id":"3", "stopDate":"09/06/2014"},
{"id":"2", "stopDate":null},
{"id":"1", "stopDate":"10/06/2014"}];
但我期待null分组在一起,应该出现一个接一个。
var expected= [{"id":"0", "stopDate":null},
{"id":"2", "stopDate":null},
{"id":"3","stopDate":"09/06/2014" },
{"id":"1", "stopDate":"10/06/2014"}];
当我跑到你的代码我得到了“期望”输出,即0,2,3,1。 – 2014-10-06 21:21:50
这些'stopDate'值是字符串还是日期?如果它们是字符串,那么您应该将它们重新格式化为ISO 8601格式,以便它们可以正确比较。 – 2014-10-06 21:46:53
@Jordan:纯粹的运气,由你的浏览器的排序实现引起的:-) – Bergi 2014-10-06 21:49:00