我在网上搜索了我的问题,但似乎我无法使其发挥作用。
以下是列表中的任何项目(解析后的JSon):
actualDate: "2017-11-25T00:00:00.000Z"
expectedDate: "2017-11-17T00:00:00.000Z"
id: 2
initialDate: "2017-11-17T00:00:00.000Z"
isDone: false
markerTitle: "Test"
markerTypeId: 1
projectId: 11
这是我的排序功能:
self.listOfMarkers(self.listOfMarkers().sort(function (m1, m2)
{
var d1 = (m1.actualDate === null ? (m1.expectedDate === null ?
m1.initialDate : m1.expectedDate) : m1.actualDate);
var d2 = (m2.actualDate === null ? (m2.expectedDate === null ?
m2.initialDate : m2.expectedDate) : m2.actualDate);
return d1 < d2 ? -1 : 1;
}));
此函数在我更新项目的callBack函数中执行。 我设法在我的API端在C#中对它进行排序,但在正面它只排序2个项目。
有什么想法吗?
提前致谢。
答案 0 :(得分:0)
我会回答自己,因为我在上面的评论中在user3297291的帮助下找到了解决方案。
将排序功能更改为此解决了问题:
self.listOfMarkers(self.listOfMarkers().sort(function (m1, m2) {
m1 = m1.actualDate || m1.expected || m1.initialDate;
m2 = m2.actualDate || m2.expected || m2.initialDate;
return m1 > m2 ? 1 : m1 < m2 ? -1 : 0;
}));
我认为使用中间体变量或者我得到正确日期的方式就是问题。