यह समझाना कठिन है इसलिए मैं सिर्फ एक उदाहरण दिखाऊंगा। मेरे पास विशिष्ट कीवर्ड की एक सरणी है, जैसे:

const keywordArr = ['jim', 'john'];

तो मेरे पास एक स्ट्रिंग है:

const message = 'Hello john, how are you doing today?'

मैं यह जांचना चाहता हूं कि क्या message में keywordArr से कोई मान है। मुझे पता है कि मैं keywordArr में प्रत्येक मान के माध्यम से लूप कर सकता हूं और इस तरह जांच सकता हूं:

keywordArr.forEach(function(word) {
    if (message.toLowerCase().includes(word)) {
         rest of code here..
    }
}

हालाँकि, मुझे प्रत्येक सेकंड में लगभग 5 संदेश मिलते हैं, इसलिए यह विधि बहुत ही प्रदर्शन करने वाली होगी। क्या ऐसा करने का कोई कारगर तरीका है?

0
SpecialVirusTasker 3 अप्रैल 2018, 20:42

1 उत्तर

जाँच करें कि क्या सरणी में का उपयोग करते हुए कोई शब्द है। RegExp.test() (regex101 उदाहरण)।

const keywordArr = ['jim', 'john'];

const message = 'Hello john, how are you doing today?'

const pattern = new RegExp(`\\b${keywordArr.join('|')}\\b`, 'gi');
const contains = pattern.test(message);

console.log(contains);
1
Ori Drori 3 अप्रैल 2018, 17:47