【问题标题】:What is the better way to test strings for two matches?测试两个匹配项的字符串的更好方法是什么?
【发布时间】:2017-05-26 00:23:50
【问题描述】:

只是出于好奇: 如果我想为两个(或少量)不同的单词测试一个字符串,是使用多个比较还是一个正则表达式更好?

if (myString == "apple" || myString == "banana")

或更好

if (/apple|banana/.test(myString))

我发现正则表达式会减少代码输入,但更难阅读。 什么是(理论上的)技术上更有效的方法?

(我不应该使用“style”标签,所以我不会:D)

【问题讨论】:

  • 我不知道这个问题是否是一个很好的 SO 问题,因为它将非常基于意见,人们更喜欢哪种方式。或者以具体的方式定义“更好”,例如“更快”、“使用更少的内存”等。然后你摆脱问题的意见部分并使其可量化......
  • @ufo 也许codereview.stackexchange.com 是更适合此类问题的论坛
  • 感谢您的回答。假设我对“更快”的解决方案感兴趣,那么实际需要多少 CPU 周期(或者说,我不太喜欢这个)。

标签: javascript string comparison theory coding-efficiency


【解决方案1】:

你也可以使用哈希表

var words = {
    apple: true,
    banana: true
};

用法:

if (words[myString]) {

或者对于 ES6,你可以使用 Set

var words = new Set('apple', 'banana');

用法:

if (words.has(myString)) {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 2017-05-04
    • 2018-11-03
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多