javascript - 在一系列时刻中查找 moment.js 对象?
问题描述
我有一系列 moment() moment.js 对象。对象包含日期和开始时间,任何给定日期都可以有 N 个对象。
我无法弄清楚如何搜索数组并返回给定日期内的所有时刻。是否可以在不遍历整个数组的情况下做到这一点?(大约 500 个对象)
var dateTimeList = [];
// Grabs a bunch of date\times converts them to moments, adds to array
dateTimeList.push(moment(data[i]["start_date"] + data[i]["begintime"], "YYYYMMDDHHmm"));
function dateSelected(someSpecificDay, dateTimeList){
var startDate = moment(someSpecificDay);
var endDate = startDate.endOf('day');
var matchingMoments = [];
// Stuck here, How can i use inArray(){} to add the moment if it falls within that particular day?
}
示例输入(为清楚起见更改了格式):
12/31/2019 09:00
1/1/2020 13:00
1/1/2020 14:00
1/1/2020 08:00
1/3/2020 09:00
On Date Selected (Selected Date 1/1) 返回:
1/1/2020 13:00
1/1/2020 14:00
1/1/2020 08:00
在选定日期(选定日期 1/5)返回:
Nothing
解决方案
是否可以在不遍历整个数组的情况下做到这一点?
不,您必须遍历整个数组。无论您使用什么方法,它都会在引擎盖下遍历整个数组。
如果您想在没有迭代的情况下执行此操作,则应使用不同的数据结构,例如以天为键的对象。那会让你得到相应的对象dateTimeList["1/1"]
。
推荐阅读
- laravel - Laravel - Unknown column 'subscription_date' in 'group statement'
- java - 在哪里可以找到用于外来字符电子邮件验证的 Java 正则表达式 (RFC 6530)?
- javascript - React 创建一个二维码组件 将其转换为 base64 图像
- google-apps-script - 尝试保存到数组时导致此“无法设置属性”错误的原因是什么?
- javascript - 如何在 Phaser 3 中将数据从一个场景传递到另一个场景?
- c++11 - Qt:QObject::connect:没有这样的插槽
- powershell - 等待其他会话中的多个同时执行的 powershell 命令完成,然后再运行下一个命令
- web-scraping - 如何修复 yaml 文件中的“在此上下文中不允许映射值”错误?
- php - 测试父方法时存根子方法失败
- excel - 对数据进行排序后,我可以在 Excel 中将多行合并为一行吗?