如何按时间字符串值对对象数组进行排序?

2024-07-01

我有一个像这样的对象数组:

var example = [{
  "description": "aaa",
  "time": "12:15pm"
}, {
  "description": "bbb",
  "time": "10:10am"
}, {
  "description": "ccc",
  "time": "4:00pm"
}, {
  "description": "ddd",
  "time": "6:15pm"
}, {
  "description": "eee",
  "time": "1:10am"
}, {
  "description": "fff",
  "time": "5:00pm"
} ];

我想按time价值。

我已尝试申请这个解决方案 https://stackoverflow.com/a/17064665/1063287这是用于字符串值数组的:

example.sort(function (a, b) {
  return new Date('1970/01/01 ' + a.time) - new Date('1970/01/01 ' + b.time);
});

console.log(example);

我也提到过 MozillaArray.prototype.sort() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort文档并尝试了以下似乎不起作用的方法:

example.sort(function(a, b) {
  if (new Date(a.time) > new Date(b.time)) {
    return 1;
  }
  if (new Date(a.time) < new Date(b.time)) {
    return -1;
  }
  // a must be equal to b
  return 0;
});

console.log(example);

您生成的日期字符串无效,因此它将始终返回当前日期和时间。因此生成有效的日期字符串(例如:'1970/01/01 9:34:48 AM')然后解析并返回差异。这里String#slice() https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/slice方法可用于生成有效的日期字符串。

var example = [{
  "description": "aaa",
  "time": "12:15pm"
}, {
  "description": "bbb",
  "time": "10:10am"
}, {
  "description": "ccc",
  "time": "4:00pm"
}, {
  "description": "ddd",
  "time": "6:15pm"
}, {
  "description": "eee",
  "time": "1:10am"
}, {
  "description": "fff",
  "time": "5:00pm"
}];

example.sort(function(a, b) {
  // get time from string 
  // then get am or pm from string and append
  // both can be done using the slice method
  return Date.parse('1970/01/01 ' + a.time.slice(0, -2) + ' ' + a.time.slice(-2)) - Date.parse('1970/01/01 ' + b.time.slice(0, -2) + ' ' + b.time.slice(-2))
});

console.log(example);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何按时间字符串值对对象数组进行排序? 的相关文章

  • javascript 中可滚动区域/div 的增量单位?

    在 javascript 中我可以确保我的大 div 垂直滚动 仅以 比方说 16 像素为单位 在 Java 中 这些被称为 增量单位 我在 javascript 中找不到类似的东西 我想确保部分滚动时的某个区域 div 始终是视图 16
  • 在 1 级深度上翻转键值对

    我有对象 const pairs A D 1 2 3 B D 3 2 1 C D 4 3 2 1 B 0 1 2 3 我怎样才能让它翻转 const fliped D A 1 2 3 B 3 2 1 C 4 3 2 1 B C 0 1 2
  • 在 Javascript 中访问对象属性

    我正在尝试访问电子邮件和密码字段 但我不知道在哪里 0 来了 我正在从 rethinkdb 检索对象 它看起来不错 没有 0 但后来我使用 Lodash assign 像这样的方法 var user new User var finduse
  • 点运算符不获取 Mongoose Document 对象的子属性

    console log gt gt gt gt gt gt user user outputs gt gt gt gt gt gt user username user1 salt 3303187e50a64889b41a7a1c66d3d
  • 邪恶的 Firefox 错误——“底层对象不支持参数或操作”

    我想弄清楚这里发生了什么事 我已经研究了几个小时了 似乎无法理解为什么会发生这种情况 我正在进行一些 AJAX 调用 但仅在 Mac OS X 上的 Firefox 版本 21 中不断收到此错误 这是错误 Exception A param
  • 控制台日志不打印函数中的变量

    尝试将变量 randomWord 打印到console log 但chrome说它没有定义 看起来它是为我定义的 为什么它不会打印到console log function strt get random word from words a
  • 未捕获的 NotFoundError:无法在“Node”上执行“insertBefore”:

    我有一个div另外三个里面的哪里div附加如下 状态值是通过循环 api 的结果来设置的componentWillReceiveProps 但我遇到了一个错误的问题 Uncaught NotFoundError Failed to exec
  • 禁用 WebSocket 证书验证

    我需要禁用 WebSocket 的证书验证 因为我使用的是自签名证书 我在这个问题中发现Websocket SSL 连接 https stackoverflow com questions 30902547 websocket ssl co
  • MomentJS:如何将 MM/DD/YYYY 中的日期解析为 DD/MM/YYYY

    如何在澳大利亚和美国时间格式中使用 moment js 例如 07 08 2017 对于两种时间格式都有好处 但是 30 08 2017 对于 moment js 无效 但我可以有这样的 dateTime 您可以在这里检查 http jsf
  • d3.js 雷达图 - 填充线条之间

    我正在尝试在其中两个三角形之间创建填充 例如在红色和绿色三角形之间创建红色填充 有人知道如何做到这一点吗 我见过另一个雷达图的例子 我相信它做了类似的事情 尽管我认为他们使用CSS而不是d3创建填充 使用径向图用 mbostock 的答案解
  • 多个选择器:确定触发选择器?

    这是一个我无法弄清楚的小问题 我相信很快就会有人回答 有多个选择器 例如 a button span xyz a another click function e var clicked element 我如何找出实际单击了哪个选择器 我需
  • 在 emberjs 中绑定子视图和集合

    我正在尝试渲染视图Team里面一个 outlet This Team视图由一个简单的Person视图 团队领导者 以及集合Person意见 团队成员 插座是通过调用设置的connectOutlet 在应用程序控制器上 虽然Person子视图
  • 如何在单击时和用户单击离开时关闭菜单?

    我有以下代码 function document ready function clicker class click function show menu users show jQuery clicker class click fun
  • 每个内每个内每个

    我是新使用 JSON 和 getJSON 函数等 我正在尝试从 JSON 中获取数据 该 JSON 会下降几个级别并且可以有多个子级 目前 我可以通过将 each 与另一个 each 一起使用来查看我想要的值 例如 each data fu
  • chrome 对象 console.log 中的奇怪行为

    当我尝试在 Chrome 中 console log 一个对象时 它在 console log 的第一行中指出 您可以在其中看到 Object 此处的小摘要 我的 posts 数组的长度为 0 posts Array 0 然而 当我展开帖子
  • HTML / Javascript - 通过单击父行来展开和折叠表行(子行)

    我几天来一直在尝试解决一个问题 终于明白 如 果没有帮助 我将不会成功 我想做一件我们每天在互联网上看到的常见事情 能够单击表格行以显示更多详细信息 但这里的更多细节并不意味着文本块 而是指与父行具有相同形状的子行 以下是 HTML 表格的
  • 确定方法是同步还是异步

    在node js中 是否可以 使用函数 确定方法是同步还是异步 我想编写一个执行以下操作的函数 function isSynchonous methodName if the method is synchronous return tru
  • 通过 http 在两个 Node.js 服务器之间传输文件

    我有两个通过 http 相互通信的 node js express 服务器 server A它还与浏览器通信并可以处理文件上传请求 当文件上传到server A我想将其原样转移到server B以便进一步加工 最好的方法是什么 最好与请求
  • 通过 http 在两个 Node.js 服务器之间传输文件

    我有两个通过 http 相互通信的 node js express 服务器 server A它还与浏览器通信并可以处理文件上传请求 当文件上传到server A我想将其原样转移到server B以便进一步加工 最好的方法是什么 最好与请求
  • 克隆元件查找器

    在研究可用的同时ElementFinder and ElementArrayFinder方法 我注意到有一个clone method http angular github io protractor api view ElementFin

随机推荐

  • 在 Visual Studio 2010 中的工具栏上显示当前功能

    我希望显示我的光标所在的当前功能 我非常怀念 VS6 的这个功能 我尝试过自定义工具栏 但在数百个工具栏项的迷宫中找不到它应该不足为奇 有人知道吗它叫什么以及它位于哪里 或者如果可能的话 让我举一个例子 我正在调试并看到变量设置为某个值 我
  • 字段前的 Groovy @ 符号

    Groovy 中字段名称前面的 意味着什么 对于某些类 我可以访问无法直接访问的私有字段 让我们看看组合闭包 http git codehaus org gitweb cgi p groovy git git a blob f src ma
  • IOS - Unicode 无符号

    我有一个用 C 编写的函数 我想将其转换为 Objective C 怎么做 public static string UnicodeUnSign string s const string uniChars const string koD
  • Python 套接字刷新

    我试图确保每次调用 socket send 函数时 我的缓冲区都会发送 刷新 到我的服务器 使用 unix 套接字在 C 中 根据我的理解 以及我在这个板上看到的 只需禁用 naggle 算法即可 应该这样做 但我的服务器仍然收到 4096
  • 我应该使用 Base64 编码还是 byte[] 在 .NET Web 服务中返回二进制数据

    我有一个简单的问题 通过 NET 中的 Web 服务公开二进制数据时 我应该返回字节数组还是简单地对二进制数据进行 base64 编码 这两种方法都有优点 缺点吗 主要受支持等 使用字节数组 通过 SOAP 协议 该字节数组将自动使用 ba
  • pycharm自动将制表符转换为空格

    我正在使用 pycharm IDE 进行 python 开发 它对于 django 代码来说工作得很好 因此怀疑将制表符转换为空格是默认行为 但是在 python IDE 中到处都会出现错误 因为它无法自动将制表符转换为空格 有没有办法实现
  • Bootstrap 3 +backbonejs - 切换导航未打开

    我在我的项目中使用 jquery backbonejs underscorejs 和 bootstrap 3 https izify com https izify com 这是我的源代码https github com datomnurd
  • 比较两个javascript数组?

    我想相互比较两个数组 看看是否匹配 如果匹配则执行某些操作 var answers new Array a b c d e var correct new Array a d do a for loop if there s a match
  • Kafka模板和Kafka生产者有什么区别?

    正如我所见 Kafka 模板内部使用了 Kafka 生产者 我只是想知道确切的区别是什么 此外 与 Kafka 生产者相比 我发现 Kafka 模板中提供了许多可用的 send 方法 请帮我解决一下 如果有人知道更多的话 生产者是一种模式
  • 提取PDF文档的特定部分[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有多个 30 个 PDF 文件 每个包含 48 96 页 所有页面的布局都是相同的 只有其他内容 数字 图表 背景 这些页面是光纤电缆测
  • WPF DatePicker 在更改月份时抛出异常

    好的 我正在 WPF Visual C 2010 Express 中处理这个项目 并且我有一些绑定到 DateTime 属性的 DatePickers 现在 如果我打开 选择器 并立即开始更改月份 那就没有问题了 但是 如果我选择一个日期然
  • 如何在 SwiftLint 上强制显示错误而不是警告?

    我的问题很简单 我该如何做所有warnings become errors on SwiftLint https github com realm SwiftLint 无需单独手动配置每条规则 要将 SwiftLint 集成到您的项目中 通
  • React:有状态类组件和使用 Hooks 的函数组件之间的区别?

    我刚刚创建了一个包含表达式的函数组件const state setState useState 现在我可以访问state and setState 这个有状态函数组件与有状态类组件非常相似 我只知道这个组件和典型的类组件之间的两个区别 当引
  • R 中的 Python 链接式数据整理

    我是 Python 新手 来自 R 环境 我喜欢 R 的一件事是能够编写代码 在一个可读的代码块中对数据进行多种转换 但对我来说 在 Python 中找到这种风格的代码非常困难 我想知道你们中的一些人是否可以指导在哪里可以找到有关该特定风格
  • 重启设备后,频繁发送短信就是开机时多发一次短信

    我经常发送短信 在重新启动设备时再次发送短信 同时我们也 打开 之后 它发送短信的时间间隔是正确的 但是当我们打开设备时 它会再次发送短信 public class BootCompletedIntentReceiver extends B
  • 将表格单元格添加到现有表格行,jQuery

    我正在尝试使用 jQuery 将值添加到表中 不幸的是 我不知道如何让 jQuery 将表单元格添加到现有行 例如 td a href key a td click function e e preventDefault testset k
  • 如何删除 ListBoxItem 周围的小填充?

    我正在设计一个列表框 我试图清除边距 所以我意识到它 我将样式的填充设置为 0 左填充 但我仍然可以看到其中有一些余量 并且我需要没有余量 你知道哪一个会出现问题吗
  • PHP:强制转换为(数组)和返回类型:数组不一样吗?

    我在 PHP 中遇到以下问题 print r 说是一样的gettype 说相同的类型 但最后的输出不适用于这两种情况 尽管它们应该是相同的 这对我来说看起来很奇怪 代码和输出 docdatau get object vars json de
  • 一千兆字节 (GB) 是多少字节?

    当我使用在线工具将 1GB 转换为字节时 我得到了不同的答案 例如 使用 Google 转换器 1GB 1e 9而在另一个转换器中我得到1GB 1073741824 我想该单位根据是否以不同的方式使用1KB 1024B or 1KB 100
  • 如何按时间字符串值对对象数组进行排序?

    我有一个像这样的对象数组 var example description aaa time 12 15pm description bbb time 10 10am description ccc time 4 00pm descripti