javascript - 按字符串日期值对数组列表进行排序
问题描述
data = [["Apples", 606.8, "pos151.5", "12-11-19"],
["Apples", 608.8, "pos213.9", "12-11-19"],
["Apples", 610.5, "pos271.6", "12-11-19"],
["Apples", 612.5, "pos325", "12-11-19"],
["Apples", 609.4, "pos521.7", "12-11-19"],
["Apples", 611.1, "pos622.8", "12-11-19"],
["Bananas", 626.1, "pos175", "02-20-20"],
["Bananas", 626.1, "pos234.2", "02-20-20"],
["Bananas", 630, "pos321", "02-20-20"],
["Bananas", 620.6, "pos97", "02-20-20"],
["Pears", 616.5, "pos150.9", "10-17-19"],
["Pears", 616.6, "pos17.2", "10-17-19"],
["Pears", 615.4, "pos300.9", "10-17-19"],
["Pears", 614, "pos446.9", "10-17-19"],
["Oranges", 616.1, "pos127.69", "10-21-19"],
["Oranges", 616.1, "pos177.49", "10-21-19"],
["Oranges", 616.1, "pos233.69", "10-21-19"],
["Oranges", 616.5, "pos383.73", "10-21-19"],
["Oranges", 616.3, "pos546.93", "10-21-19"],
["Oranges", 615.2, "pos637.99", "10-21-19"]]
如何按每个数组中的第 4 个值(日期字符串)按日期升序对这个数组列表进行排序?
我假设它是这样的,但我不确定如何在没有字段名称/键的情况下调用数组中的第 4 个值:
data.sort(function(a,b) {
return new Date(a.date).getTime() - new Date(b.date).getTime()
});
谢谢。
解决方案
当没有为数组设置键时,只需通过基于零的数字索引来访问它们。因此,要访问第 4 项,您将使用data[3]
. 因此,鉴于您的排序示例,
data.sort(function(a,b) {
return new Date(a[3]).getTime() - new Date(b[3]).getTime()
});
推荐阅读
- katalon-studio - 如何在 Katalon Studio 中获取测试用例名称
- java - 获取端点的指标
- c++ - 使用新的展示位置作为复制赋值运算符不好吗?
- c++ - 将带有自动参数的 lambda 传递给另一个函数是否合法
- java - 值未正确插入 SQLite 数据库
- windows - SET 命令不回显 FOR /F 循环参数值
- c++ - 如何在 Qt5 C++ 上集成 Libcurl 以消耗来自 Azure 认知的资源
- javascript - 如何拉伸使用 JS“document.body.style.backgroundImage = url(imgsrc);”插入的背景图像?
- javascript - res 在这种情况下是什么意思?
- javascript - 如何从 Flask 模板访问接收到的 JSON 数据?