[英]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.