我需要帮助排序的数组按月和年分别显示在图表上。
Array1: ['Mar19','Apr18','Jun18','Jul18','May18','Jan19'....];
Desired Output : [....'Apr18','May18','Jun18','Jul18','Jan19','Mar19'];我也有另一个数组,每个月的值分别根据上面的数组。
Array2: ['Mar19_value','Apr18_value','Jun18_value','Jul18_value','May18_value'
,'Jan19_value'....];
Array2: ['55','2','3','0','21','132'....]; //real values当monthyear数组排序时,我希望这个数组中的数据根据monthyear位置移动到一个新的位置。如下所示:
Desired Array1: [....'Apr18','May18','Jun18','Jul18','Jan19','Mar19'];
Desired Array2: [....'Apr18_value','May18_value','Jun18_value','Jul18_value','Jan19_value','Mar19_value'];所以以后我可以选择这样的数据:
var label = array[4];
var value = array2[4];如何才能做到这一点?
发布于 2019-03-08 10:42:36
const input = ['Mar19', 'Apr18', 'Jun18', 'Jul18', 'May18', 'Jan19'];
//const output : ['Apr18','May18','Jun18','Jul18','Jan19','Mar19'];
//Can be done easily by using momentjs, darte-fns, but here i will do it natively
const t = {
Jan: 1,
Feb: 2,
Mar: 3,
Apr: 4,
May: 5,
Jun: 6,
Jul: 7,
Aug: 8,
Sep: 9,
Oct: 10,
Nov: 11,
Dec: 12
}
const giveConcatString = (a, t) => {
const monthPart = a.substr(0, 3)
const yearPart = a.substr(3)
return `${yearPart}${t[monthPart]}`
}
const sortedArray = input.sort((a, b) => {
const concatString = giveConcatString(a, t)
const concatStringB = giveConcatString(b, t)
return concatString <= concatStringB ? -1 : 1
})
console.log(sortedArray)
这可能会帮助你解决这个问题。本地人做的。
https://stackoverflow.com/questions/55061324
复制相似问题