首页 > 解决方案 > 按字母顺序和基于日期对 2D JavaScript 数组进行排序

问题描述

我有一个嵌套数组,我想按内部数组中的值进行排序。首先按名称按字母顺序排序,然后按日期排序(从最旧到最新)。

假设我们有这个数组:

[['BBB','2020-10-20'],['AAA','2020-10-25'],['BBB','2020-10-19'],['EEE','2020-11-19'],['AAA','2020-10-10']]

排序后看起来像这样:

[['AAA','2020-10-10'],['AAA','2020-10-25'],['BBB','2020-10-19'],['BBB','2020-10-20'],['EEE','2020-11-19']]

是否可以使用该sort()方法执行此操作?

标签: javascriptgoogle-apps-script

解决方案


解决方案:

您可以根据一行代码中的第一列和第二列进行排序。

您只需要对字符串和日期对象进行排序:

var myArray  = 
[['BBB','2020-10-20'],
['AAA','2020-10-25'],
['BBB','2020-10-19'],
['EEE','2020-11-19'],
['AAA','2020-10-10']];

 myArray.sort( (a,b) => a[0].charCodeAt(0)-b[0].charCodeAt(0) || new Date(a[1]) - new Date(b[1]));

console.log(myArray);


推荐阅读