如何在以键分隔的单个数组内排序为日期,并以逗号分隔值。
旧版时间序列正在以以下格式发送数据
arr1 = ['3/13/20,2179','3/14/20,2727', '3/14/20,1024' , '3/14/20,3020', '3/13/20,100', '3/13/20,190']
我正在努力按以下格式对其进行排序,关键是按所有必需值分组的日期
arr1 = [3/13/20,2179,100,190,3/14/20,2727,1024,3020]
任何指针/提示都会有所帮助。
split key
以获取date
和count
。如果要按日期排序,请分割date-string
。并在排序回调函数中返回比较的差异。 const arr1 = [
"3/13/20,2179",
"3/14/20,2727",
"3/14/20,1024",
"3/14/20,3020",
"3/13/20,100",
"3/13/20,190",
];
const sort = (data) => {
return data.sort((x, y) => {
const [date, num] = x.split(",");
const [date1, num1] = y.split(",");
const [mm, dd, yy] = date.split("/");
const [mm1, dd1, yy1] = date1.split("/");
return new Date(dd, mm, yy).getTime() - new Date(dd1, mm1, yy1).getTime();
});
};
console.log(sort(arr1));
根据日期排序然后计数
arr1 = [ "3/13/20,2179", "3/14/20,2727", "3/14/20,1024", "3/14/20,3020", "3/13/20,100", "3/13/20,190", ]; const sort = (data) => { return data.sort((x, y) => { const [date, num] = x.split(","); const [date1, num1] = y.split(","); const [mm, dd, yy] = date.split("/"); const [mm1, dd1, yy1] = date1.split("/"); const d1 = new Date(dd, mm, yy).getTime(); const d2 = new Date(dd1, mm1, yy1).getTime(); if (d1 !== d1) return d1 - d2; return Number(num) - Number(num1); }); }; console.log(sort(arr1));