Javascript 如何在用逗号分隔值按键分隔的数组中排序

Javascript 如何在用逗号分隔值按键分隔的数组中排序,javascript,arrays,Javascript,Arrays,如何在单个数组中使用逗号分隔的值对withins进行排序 传统Timeseries正在以以下格式发送数据 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] 任何指针/提示都

如何在单个数组中使用逗号分隔的值对withins进行排序

传统Timeseries正在以以下格式发送数据

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]

任何指针/提示都会有帮助。

迭代日期,
拆分键
以获取
日期
计数
。如果要按日期排序,请拆分日期字符串。并在sort回调函数中返回compare的diff

根据日期排序,然后计数

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",
];
常量排序=(数据)=>{
返回数据。排序((x,y)=>{
常数[mm,dd,yy,num]=x.split(/[/,]/);
常数[mm1,dd1,yy1,num1]=y.split(/[/,]/);
const d1=新日期(dd,mm,yy).getTime();
const d2=新日期(dd1,mm1,yy1).getTime();
如果(d1!==d1)返回d1-d2;
返回编号(num)-编号(num1);
});
};

console.log(排序(arr1))您可以按第一个零件分组,并获得一个平直的字符串结果

var数据=['3/13/202179'、'3/14/202727'、'3/14/201024'、'3/14/203020'、'3/13/20100'、'3/13/20190'],
结果=对象
.entries(data.reduce((r,s)=>{
常量[日期,值]=s.split(',');
r[日期]=r[日期]| |[];
r[日期]。推送(值);
返回r;
}, {}))
·单位(2);
console.log(结果)
.as控制台包装{最大高度:100%!重要;顶部:0;}
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',
];
常量组值ByDate=(datesDictionary,dateWithValue)=>{
const[date,value]=dateWithValue.split(',');
返回{
…datesDictionary,
[日期]:datesDictionary[日期]?[…datesDictionary[日期],parseInt(值,10)]:[parseInt(值,10)],
};
};
const valuesGroupedByDate=arr1.reduce(groupValuesByDate,{});
设formattedDates=[];
for(值中的日期GroupedByDate){
常量值=值GroupedByDate[日期];
formattedDates=[…formattedDates,date,…值];
}

console.log(格式化日期)订单?排序的日期?你们试过什么了吗?它必须在数组中吗?或者你可以分配更多?类似这样的操作应该利用数组创建映射,其中日期是键,其值是每个日期的值数组。请添加有效结果。@xdeepakv,检查NinaAnswer@anish我检查了你的结果并更新了解决方案。如果你还想看的话,你可以看一看。这非常接近我的解决方案。谢谢你的回答,第二个解决方案非常接近我的解决方案Question@anish我更新了groupby解决方案,请检查。这是优化的。谢谢你的回答,这也有帮助