gpt4 book ai didi

javascript - 按月对对象数组进行排序

转载 作者:行者123 更新时间:2023-11-30 07:48:45 25 4
gpt4 key购买 nike

我正在使用仪表板,我有一个图表,我必须在其中根据月份标签显示计数。我有一组带有计数和月份键的对象。我想按月键值的升序对这个对象数组进行排序。我试过下面的代码在 chrome 中工作正常,但数组在 Firefox 中确实得到排序。

var xAxis =  [
{count: 0, month: "Jan 2019"},
{count: 7, month: "Dec 2019"},
{count: 0, month: "Feb 2019"},
{count: 0, month: "Jul 2019"}
]

xAxis.sort(function(a, b) {
var c = new Date(a.month);
console.log("TCL: CountByUserGraph -> makeApiCall -> c", c)
// Chrome showing ==> Tue Jan 01 2019 00:00:00 GMT+0530
//firefox showing ==> Invalid Date
var d = new Date(b.month);
return c - d;
});

最佳答案

以下实现比较年和月 -

const sortByMonth = arr => {
const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
const getIndexOfMonth = month => months.indexOf(month)
return [ ...arr ].sort((left, right) => {
const [ leftMonth, leftYear ] = left.month.split(' ')
const [ rightMonth, rightYear ] = right.month.split(' ')
if (leftYear !== rightYear) {
return parseInt(leftYear) - parseInt(rightYear)
}
return getIndexOfMonth(leftMonth) - getIndexOfMonth(rightMonth)
})
}

var xAxis = [
{count: 0, month: "Jan 2019"},
{count: 7, month: "Dec 2019"},
{count: 0, month: "Dec 2017"},
{count: 0, month: "Jun 2018"},
{count: 0, month: "Feb 2019"},
{count: 0, month: "Jul 2019"},
];

console.log(sortByMonth(xAxis))

关于javascript - 按月对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59408466/

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