gpt4 book ai didi

javascript - 按升序对周数和年份进行排序

转载 作者:行者123 更新时间:2023-11-30 17:26:06 25 4
gpt4 key购买 nike

是否可以按升序对具有特定格式的日期数组进行排序?该格式包括年份和周数,您可以在下面看到:

未排序数组的摘录:

["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 sort function对数组进行排序,它采用可选函数来比较一对元素。然后,您可以使用 d3.ascending 将元素按年份升序排序,如果年份相同,则按月份排序。

请注意,我不确定您是否要删除重复元素,就像您在示例中所做的那样。您可以在对数组排序之前或之后轻松执行此操作(请参阅 this SO answer ):

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

关于javascript - 按升序对周数和年份进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24250679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com