javascript数组仅在第一列上排序2d数组

佩鲁马尔国王

我已经检查了很多解决方案,但似乎没有任何帮助。

这是我在Javascript中的数组

[
{"1/2/2015",344},
{"1/3/2015",444},
{"1/2/2015",544},
{"1/3/2015",44},
{"1/2/2015",34},
{"1/3/2015",340}
]

我希望在第一列(日期)上进行排序,而不在第二列(计数)上进行排序(即在给定日期的计数上保持当前顺序)。javascript sort()函数似乎按日期排序,然后按计数排序,这是不希望的。所需的输出是

[
{"1/2/2015",344},
{"1/2/2015",544},
{"1/2/2015",34},
{"1/3/2015",444},
{"1/3/2015",44},
{"1/3/2015",340}
]

任何指针,以解决这个问题表示赞赏。

谢谢

亭子

您的语法不正确:内部对象无效。在您指定的注释中,您具有内部数组,因此它们需要方括号而不是括号。

解决方案可能是创建一个副本并将原始数组索引添加到数据中,然后执行一个自定义排序,将该索引作为辅助排序条件,然后从最终结果中删除该索引:

var data =  [ ["10/02/2015",3351], ["10/03/2015",7273], ["10/04/2015",8609], ["10/05/2015",8941], ["10/06/2015",7493], ["10/07/2015",8030], ["10/08/2015",10545], ["10/02/2015",335], ["10/03/2015",727], ["10/04/2015",860], ["10/05/2015",894], ["10/06/2015",749], ["10/07/2015",803], ["10/08/2015",1055], ["10/02/2015",1351], ["10/03/2015",1273], ["10/04/2015",1609], ["10/05/2015",1941], ["10/06/2015",1493], ["10/07/2015",1030], ["10/08/2015",1545] ];

data = data.map( (o, i) => [o, Date.parse(o[0]), i] )
    .sort( (a, b) => a[1] - b[1] || a[2] - b[2] )
    .map ( a => a[0] );
    
console.log(data);
.as-console-wrapper { max-height: 100% !important; top: 0; }

最后一点:请确保您的日期格式正确,以便该Date.parse方法可以理解

我强烈建议YYYY-MM-DD您在字符串中使用ISO格式,以避免产生误解。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据第一列对2D数组的行进行排序

按C中的第一列对动态分配的2D数组进行排序

按一列对2D NumPy数组排序

按第一列对2d数组进行排序,然后对第二列进行排序

在2D数组的一列上使用map.reduce

为2D数组的第一列的所有第二列插入值

Python中2d数组按第一列按行合并

组2D numpy数组元素具有相等的第一列值

我只能检查2D数组的第一列

按第一行对numpy 2d数组进行排序,并保持列数

在NumPy中对数组进行排序在第一列上升序而在另一列上降序

查找最后一列并在最后一列上排序

在2D numpy数组的末尾添加一列

如何通过第一个子数组值对数组数组(2D数组)进行排序

按第一列对22x2数组进行排序

MySQL在同一列上排序两次

表中的AngularJs ng-repeat 2D数组,每个子数组一列

如何根据新值仅对已排序2D数组的特定部分进行排序。但前提是第一个排序的值在Javascript中匹配

用数组项填充表的第一列-JavaScript

首先按第一列然后按第二列对2D列表进行排序

在2D NumPy数组中将孤岛的每一列缩放为其长度

是否可以在C中从2d数组中切出一列

如何在2D数组中的每隔一列中替换元素的顺序

在numpy的2D数组中的特定位置插入一列?

在2D数组中将奇数行和偶数行分组时跳过一列

获取数组中的第一列

按 2 列对 2D 数组进行排序

按第二列和第一列对二维数组进行排序

根据另一个2D数组重新排序2D数组