高效计算满足时间条件的子数组长度
本文介绍一种方法,用于比较两个数组paiban和paiban2,并计算paiban2中元素的starttime和endtime都位于paiban相应元素时间范围内的子数组长度。
假设paiban2中的元素需要满足paiban中对应元素的时间范围条件。 例如,如果paiban2中的多个元素都满足paiban中某个元素的时间条件,则这些元素构成一个子数组。我们需要计算每个paiban元素对应的子数组长度。
为了实现这一目标,我们可以采用以下步骤:
遍历paiban数组: 依次处理paiban中的每个元素。
过滤paiban2数组: 对于paiban中的每个元素,使用filter()方法过滤paiban2数组。过滤条件是:paiban2元素的starttime和endtime必须在paiban元素的starttime和endtime之间。
计算子数组长度: filter()方法返回满足条件的paiban2元素的数组。该数组的长度即为对应的子数组长度。
存储结果: 将计算得到的子数组长度存储到一个新的数组中,该数组与paiban数组一一对应。
以下是使用JavaScript实现的代码示例:
const paiban = [ { id: 1, starttime: '08:00', mouth: 10, endtime: '09:00', checked: false }, { id: 2, starttime: '09:00', mouth: 10, endtime: '10:00', checked: false }, { id: 3, starttime: '10:00', mouth: 10, endtime: '11:00', checked: false }, ]; const paiban2 = [ { id: 1, starttime: '08:00', endtime: '08:10' }, { id: 2, starttime: '08:10', endtime: '08:20' }, { id: 3, starttime: '08:30', endtime: '08:50' }, { id: 4, starttime: '09:00', endtime: '09:10' }, { id: 5, starttime: '09:10', endtime: '09:20' }, { id: 6, starttime: '10:00', endtime: '10:10' }, { id: 7, starttime: '10:10', endtime: '10:20' }, { id: 8, starttime: '10:20', endtime: '10:40' }, ]; const lengths = paiban.map(item => paiban2.filter(({ starttime, endtime }) => starttime >= item.starttime && endtime <= item.endtime ).length ); console.log(lengths); // [3, 2, 3]
这段代码修正了之前的错误,确保了时间范围的正确比较。 结果数组lengths将包含每个paiban元素对应的子数组长度。
以上就是如何比较两个数组,并计算满足时间范围条件的子数组长度?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号