2017-01-11 3 views
0

Просто из любопытства: Если я хочу проверить строку на два (или другое небольшое количество) разных слов, лучше ли использовать несколько сравнений или регулярное выражение?Каков лучший способ проверить строки для двух матчей?

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

или лучше

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

Я вижу, что регулярное выражение будет меньше кода печатать, но хуже для чтения. Что такое (теоретический) технический более эффективный метод?

(я не должен использовать "стиль" тег, так что я не: D)

+0

Я не знаю, является ли этот вопрос хорошим вопросом SO, поскольку он будет очень основан на мнениях, каким образом он предпочитает. Или определите «лучше» конкретным способом, например «быстрее», «использует меньше памяти» и т. Д. Затем вы избавитесь от мнений и сделаете их количественно ... – EluciusFTW

+0

@ufo, возможно, http: // codereview. stackexchange.com/ - более подходящий форум для такого типа вопросов. –

+0

Спасибо за ответы. Скажем, меня интересует «более быстрое» решение, поэтому сколько реальных циклов процессора необходимо (или так, я не совсем в этом). – ufo

ответ

0

Вы можете использовать хэш-таблицу, а

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

Использование:

if (words[myString]) { 

Или с ES6, вы можете использовать Set

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

if (words.has(myString)) {