Javascript:根据包含字符串日期的子数组元素对数组进行排序

标签 javascript arrays sorting

我有一个数组complexArray,我想按其子数组(字符串)的第一个值进行排序。在 simpleArray 中按照需要进行排序。对于使用的复杂数组,自定义排序函数可以很好地处理 Int 值(例如在位置 [1] 处),但不适用于位置 [0] 处的 String。

我需要如何调整自定义排序功能才能实现此功能?

var simpleArray = ["2018-12-06T19:48:39Z","2018-12-15T19:48:39Z","2018-12-13T16:37:04Z"];
simpleArray.sort();
console.log(simpleArray);

var complexArray = [["2018-12-06T19:48:39Z", 1, "15m 10s"],["2018-12-15T19:48:39Z", 3, "16m 25s"],["2018-12-13T16:37:04Z", 2,"21m 41s"]];   
complexArray.sort(function(a, b){
    return a[0] - b[0];
});
console.log(complexArray);

最佳答案

您需要将日期字符串转换为 Date对象,然后在排序函数中比较它们。

var complexArray = [["2018-12-06T19:48:39Z", 1, "15m 10s"],["2018-12-15T19:48:39Z", 3, "16m 25s"],["2018-12-13T16:37:04Z", 2,"21m 41s"]]
  
complexArray.sort(function(a, b){
    return new Date(a[0]) - new Date(b[0]);
});

console.log(complexArray);

关于Javascript:根据包含字符串日期的子数组元素对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53800171/

相关文章:

c - 将数组传递给函数

c++ - std::set 和 std::priority_queue 之间的区别

javascript - 无法使用 AJAX localhost 请求 html 内容

javascript - 使用提交按钮发送表单

ios - 在NSFetchedResultsController中标识数组的数组

python - 当作为参数传递给函数时获取 numpy 结构化数组列的名称

Java:对列表列表进行排序

java - getRowSorter 相当于 Java 1.4 中的 JTable

javascript - 简单的播放/暂停按钮动画

javascript - Grunt build 破坏了我编译的 javascript