str.indexOf(substr) == 0
str.slice(0, 10) == substr
以上哪两个更好?还有更好的办法吗?
答案 0 :(得分:6)
第一个的性能取决于字符串str
的长度,因为它需要扫描整个字符串。如果str
很大,可能需要很长时间才能找到子字符串是否包含在其中。
如果您的输入字符串可能较大,则更喜欢第二个。
另一种选择是:
str.lastIndexOf(substr, 0) == 0
这可以避免扫描整个字符串并避免创建临时字符串。
如果性能很重要,我建议根据您的具体数据对其进行测量。
答案 1 :(得分:2)
(very) quick test表示Chrome中的差异可能微不足道,但Firefox indexOf
的速度要快得多(至少对短字符串而言)。
答案 2 :(得分:1)
我不知道如何使用:
str.indexOf(substr) == 0;
只是因为它不需要从第一个创建新的字符串。需要进行性能测试。可能因浏览器而异。