【问题标题】:Which way is faster when stripping part of string in JavaScript [duplicate]在JavaScript中剥离部分字符串时哪种方式更快[重复]
【发布时间】:2020-06-01 21:33:11
【问题描述】:

我需要剥离 JWT 令牌的一部分,我很想知道哪个更快,或者内部不太复杂。

示例输入字符串:

const input = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOjMsInR5cGUiOjAsImlhdCI6MTU4MTk3NDk1MCwiZXhwIjoxNTgxOTc4NTUwfQ.oEwxI51kVjB6jJUY2N5Ct6-hO0GUCUonolPbryUo-lI"

其中哪一种方法更快?

const output =  input.split('.').slice(2,3).join('.');
const output =  input.replace("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.","");
const output =  //REGEX replace

我没有找到有关这些方法速度的任何信息,而且我并不完全擅长进行测试:D

【问题讨论】:

  • 这可能是一次不要为它的工程性能而烦恼的事情
  • 这很大程度上取决于你运行代码的环境吧。答案肯定是没关系。尤其是如果你只运行一次,差异将是微乎其微的。
  • 在前两个选项中,第一个快了几毫秒。 jsben.ch/UqLeb 在不知道第三个选项中的正则表达式替换代码的情况下,我无法对其进行测试。正如其他人所说,您很可能不必担心这一点,因为差异非常小。
  • 示例方法产生的结果不同。

标签: javascript performance strip code-complexity


【解决方案1】:

对于这样的事情,测量执行时间毫无意义,但是,使用字符串函数很可能会胜过您的两个示例

const input = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOjMsInR5cGUiOjAsImlhdCI6MTU4MTk3NDk1MCwiZXhwIjoxNTgxOTc4NTUwfQ.oEwxI51kVjB6jJUY2N5Ct6-hO0GUCUonolPbryUo-lI";

console.log(input.substr(input.indexOf('.') + 1));

【讨论】:

    猜你喜欢
    • 2022-11-16
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多