You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效获取日期字符串数组中首个符合条件元素的索引?

更高效的实现方式

你的当前代码能正常运行,但存在两次遍历数组的性能浪费问题:find会先遍历数组找到第一个符合条件的元素,之后indexOf又会从头遍历一次数组定位该元素的索引,数组规模越大,这种冗余遍历的影响越明显。

更高效的实现是直接使用数组的findIndex方法,它只需要一次遍历就能完成任务:

// 提前解析目标日期,避免循环中重复创建相同的Date实例
const targetDate = new Date(dataDate);
const dateIndex = dates.findIndex(e => new Date(e) > targetDate);

额外优化说明:把new Date(dataDate)的解析逻辑提到循环外部,避免每次判断条件时重复创建同一个Date对象,能进一步提升性能(尤其当数组元素数量较多时)。

如果数组为空或没有符合条件的元素,findIndex会返回-1,和你原代码的行为完全一致(原代码中find返回undefined时,indexOf也会返回-1)。

内容的提问来源于stack exchange,提问作者Malvinka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 15:24:50