2017-09-19 35 views
0

與日期多維數組我有以下格式最快的方式排序,按時間順序

[ 
    ["First Name", "10 Sep. 2017 2:00 PM"], 
    ["First Name", "10 Sep. 2017 2:00 PM"], 
    ["First Name", "10 Sep. 2017 1:00 PM"], 
    ["First Name", "10 Sep. 2017 8:00 AM"], 
    ["First Name", "9 Sep. 2017 2:00 PM"], 
    ["First Name", "9 Sep. 2017 2:00 PM"], 
    ["First Name", "9 Sep. 2017 1:00 PM"], 
    ["First Name", "9 Sep. 2017 8:00 AM"] 
] 

日期和希望這是輸出:

[ 
    ["First Name", "10 Sep. 2017 8:00 AM"], 
    ["First Name", "10 Sep. 2017 1:00 PM"], 
    ["First Name", "10 Sep. 2017 2:00 PM"], 
    ["First Name", "10 Sep. 2017 2:00 PM"], 
    ["First Name", "9 Sep. 2017 8:00 AM"], 
    ["First Name", "9 Sep. 2017 1:00 PM"], 
    ["First Name", "9 Sep. 2017 2:00 PM"], 
    ["First Name", "9 Sep. 2017 2:00 PM"] 
] 

公告日期如何在秩序,但時代是按時間順序改變的。換句話說,時代顛倒了。我怎樣才能做到這一點?這裏是我的代碼之前,我必須產生第一個樣品陣列

function sortTable(data) { 

    return sortTableHelper(data); 

    function sortTableHelper(data) { 
    data = data.sort((elem1, elem2) => { 
    var date1 = moment(elem1[1], 'D MMM YYYY h:m A') 
     , date2 = moment(elem2[1], 'D MMM YYYY h:m A'); 

    if (date1.isAfter(date2)) return 1; 

    return -1; 
    }); 

    return data; 
} 
} 

如何修改,我必須把次按時間順序排序的現有代碼?

回答

1

反轉返回代碼,以便您的結果是上升,而不是下降:

if (date2.isAfter(date1)) return 1; 
if (date1.isAfter(date2)) return -1; 
return 0; 

注意我改變了代碼,返回0時,項相等。

0

你必須按日期沒有時間和通過的時間進行排序,以獲得您想要的結果,這樣的:

var input = [["First Name", "10 Sep. 2017 2:00 PM"], ["First Name", "10 Sep. 2017 2:00 PM"], ["First Name", "10 Sep. 2017 1:00 PM"], ["First Name", "10 Sep. 2017 8:00 AM"], ["First Name", "9 Sep. 2017 2:00 PM"], ["First Name", "9 Sep. 2017 2:00 PM"], ["First Name", "9 Sep. 2017 1:00 PM"], ["First Name", "9 Sep. 2017 8:00 AM"]]; 
 

 
function sortTable(data) { 
 

 
    return sortTableHelper(data); 
 

 
    function sortTableHelper(data) { 
 

 
    return data.sort((a, b) => { 
 
    var dateA = new Date(a[1]); 
 
    var dateB = new Date(b[1]); 
 
    
 
    return dateA.getHours() - dateB.getHours() + dateB.setHours(0) - dateA.setHours(0); 
 
    }); 
 
} 
 
} 
 

 
console.log(sortTable(input));

注意:完成無momentjs

相關問題