在给定范围内查找字符最后一次出现的最有效方法

时间:2019-05-25 20:45:37

标签: javascript string

我对JavaScript相当陌生,需要找到一种有效的方法来获取给定范围内最后一次出现空格字符的索引。我不确定是否可以使用RegEx来完成此操作;我目前正在使用内置的字符串方法来执行此操作,但是,用substring方法构建新的字符串似乎浪费了我所需的东西。

我当前的解决方案:

让n为范围的结尾

    let spaceIndex = stringText.substr(0, n + 1).lastIndexOf(" ");

3 个答案:

答案 0 :(得分:2)

当然,只需使用lastIndexOf-fromIndex的第二个参数:

let spaceIndex = stringTezt.lastIndexOf(" ", n + 1)

答案 1 :(得分:1)

您不应更改代码(阿迪加(Adiga)的建议除外)。您所做的一切都很好,而且“似乎像是浪费”永远不是优化代码的好理由。

请参阅此SO Software Engineering discussion on premature optimization

代码应该首先清楚,并且只有在遇到问题时才进行优化。您的代码对我来说很清楚。

答案 2 :(得分:1)

您可能应该使用slicesubstring而不是substr

  

尽管String.prototype.substr()并未严格弃用,但它被认为是旧功能,应尽可能避免使用。它不是JavaScript核心语言的一部分,将来可能会删除。

除此之外,您的代码看起来还不错