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

JavaScript中获取数组内以指定字符串开头元素的高效方法

针对JS数组筛选指定前缀元素的实现优化

有更语义化的内置方法可以使用,和你现有方案性能相当,可读性更强:

  • ES6(ES2015)新增了内置方法 String.prototype.startsWith(),专门用于判断字符串是否以指定子串作为前缀,直接返回布尔值,完全匹配你的使用场景。

优化后的代码示例:

const originArr = ["oauth2.Hubspot1", "oauth1.Hubspot", "oauth2.Hubspot", "oauth2.HubSpot", "something else"];
const result = originArr.filter(key => key.startsWith("oauth2."));
console.log(result);
// 输出结果和原方案一致:["oauth2.Hubspot1","oauth2.Hubspot","oauth2.HubSpot"]

补充说明:

  • 性能层面:startsWith 和你当前使用的 indexOf 方案时间复杂度完全一致,数组遍历整体为O(n),单条字符串匹配复杂度为O(k)(k为前缀长度,此处固定为6位),常规业务场景下无明显性能差异,优先选择语义更清晰的startsWith即可。
  • 兼容性层面:如果需要兼容IE11及更早的老旧浏览器,可以保留原有indexOf == 0的写法,也可以给startsWith引入polyfill做兼容处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:27:03