簡體   English   中英

按升序排列星期數和年份

[英]Sorting week number and year in ascending order

是否可以按升序對具有特定格式的日期數組進行排序? 格式包括年和周,您可以在下面看到:

未排序數組的節選:

[“ 2014-03”,“ 2013-01”,“ 2013-02”,“ 2014-03”]

排序數組的期望結果:

[“ 2013-01”,“ 2013-02”,“ 2014-03”]

我想使用比較功能在javascript和D3.js中實現排序算法。

嘗試這樣的事情:

var L = ["2014 - 03", "2013 - 01", "2013 - 02", "2014 - 03"]
L.sort(function(a, b){ 
    var y1 = 1 * a.split(" - ")[0],
        y2 = 1* b.split(" - ")[0],
        m1 = 1 * a.split(" - ")[1],
        m2 = 1 * b.split(" - ")[1];
    if (y1 != y2) return d3.ascending(y1, y2);
    else return d3.ascending(m1, m2);
});

您可以使用內置的Array排序功能對數組進行排序,該功能需要一個可選功能來比較一對元素。 然后,您可以使用d3.ascending按年份(如果年份相同)按月升序對元素進行排序。

請注意,我不確定是否要像在示例中一樣刪除重復的元素。 您可以在對數組進行排序之前或之后輕松地執行此操作(請參見此SO答案 ):

L = L.filter(function(d, i){ return L.indexOf(d) == i; })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM