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

数组按索引取值与使用find方法取值的速度差异对比

数组元素查找方式的速度对比:find vs 直接索引访问

毫无疑问,month[date-1]的速度要远快于month.find(day => day.date === date),原因如下:

  • 直接索引访问是O(1)复杂度:数组在内存中是连续存储的结构,通过索引可以直接定位到目标元素的内存地址,不需要遍历任何其他元素,一次操作就能拿到结果。
  • find方法是O(n)复杂度:find会从数组的第一个元素开始逐个遍历,直到找到符合day.date === date条件的元素才停止。最坏情况下(比如查找当月最后一天),需要遍历整个数组的所有元素,循环次数随数组长度增加而线性增长。

另外,你的数组已经明确是按日期排序,且每月1号对应month[0],日期和索引存在严格的索引 = 日期 - 1映射关系,这种场景下完全没必要用find方法,直接通过索引访问不仅速度快,代码也更简洁。如果是在循环中多次调用,两者的性能差距会被进一步放大。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:45:56