Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
如何用JS高效计算数组中满足时间区间条件的元素个数?_创想鸟

如何用JS高效计算数组中满足时间区间条件的元素个数?

如何用JS高效计算数组中满足时间区间条件的元素个数?

javascript高效计算数组中满足时间区间条件的元素个数

本文介绍一种高效方法,用于计算一个数组中,元素的时间范围与另一个数组中指定的时间区间匹配的元素个数。 假设我们有两个数组:paiban 和 paiban2,我们需要确定paiban2中哪些元素的时间范围落在paiban中每个元素定义的时间区间内。

解决方案

为了提高效率,我们避免嵌套循环,利用filter方法结合some方法来实现。

遍历 paiban 数组: 使用map方法迭代paiban数组中的每个时间区间。

使用 filter 筛选 paiban2: 对于paiban中的每个时间区间,使用filter方法筛选paiban2,只保留满足时间条件的元素。 这里关键在于使用some方法来判断paiban2中的元素是否在paiban元素定义的时间范围内。

返回筛选结果的长度: filter方法返回一个新的数组,包含所有满足条件的元素。我们只需要返回这个新数组的长度,即满足条件的元素个数。

代码示例

var 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 },];var 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 result = paiban.map(item => {  return paiban2.filter(item2 => {    return item2.starttime >= item.starttime && item2.endtime <= item.endtime;  }).length;});console.log(result); // [3, 2, 3]

这段代码将输出 [3, 2, 3],准确地反映了paiban2中每个时间区间在paiban对应时间区间内的元素个数。 该方法比单纯的嵌套循环更高效,尤其在处理大型数组时优势更为明显。 请注意,此代码假设时间格式为 HH:mm,且endtime > starttime。 对于更复杂的时间格式或条件,需要进行相应的调整。

以上就是如何用JS高效计算数组中满足时间区间条件的元素个数?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1560947.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
前端开发线上版本发布:注释该保留还是删除?
上一篇 2025年12月22日 06:03:18
React打包后如何跨域获取静态HTML文件?
下一篇 2025年12月22日 06:03:37

相关推荐

发表回复

登录后才能评论
关注微信