javascript - 按字母顺序和基于日期对 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()
方法执行此操作?
解决方案
解决方案:
您可以根据一行代码中的第一列和第二列进行排序。
您只需要对字符串和日期对象进行排序:
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);
推荐阅读
- python - Python设置属性等于另一个属性
- angular - 量角器超时角度 6
- data-science - 我们能得到原始的谷歌广告词数据吗?
- jira - Apache Ignite JIRA - 删除问题
- java - JAVA是什么导致网络套接字上的流结束?
- symfony - Akeneo 2.2.8:如何在 akeneo.storage.pre_save 事件中获取原始属性数据?
- android - 如何在对话框警报按钮中使用媒体播放器
- batch-file - 如何在多个txt文件中用单个空格替换多个空格?
- .htaccess - url 上的 RedirectMatch 不包含任何参数?
- azure - Azure IoT Edge Store and Forward Live Over Power Cycles