अगर मैं एक बड़ी जावास्क्रिप्ट स्ट्रिंग सरणी 10,000 से अधिक तत्व है कि है, मैं जल्दी से उसमें खोज कैसे?बड़े जेएस स्ट्रिंग सरणी के माध्यम से खोज अनुकूलित करें?
अभी मैं, एक जावास्क्रिप्ट स्ट्रिंग सरणी है कि एक नौकरी का विवरण संग्रहीत करता है और मैं "गतिशील फिल्टर लौटे सूची में उपयोगकर्ता की अनुमति के रूप में वे एक इनपुट बॉक्स में टाइप हूँ।
तो कहते हैं कि मेरे पास है इसलिए की तरह एक स्ट्रिंग सरणी:
var descArr = {"flipping burgers", "pumping gas", "delivering mail"};
और उपयोगकर्ता के लिए खोज करना चाहता है: "p"
मैं कैसे एक स्ट्रिंग सरणी जल्दी से उस में 10000+ वर्णन है कि खोज करने के लिए सक्षम हो जाएगा स्पष्ट रूप से मैं विवरण सरणी को सॉर्ट नहीं कर सकता क्योंकि वे विवरण हैं, इसलिए बाइनरी खोज समाप्त हो गई है। और चूंकि उपयोगकर्ता "p"
या "pi"
या पत्र के किसी भी संयोजन से खोज सकते हैं, इस आंशिक खोज का मतलब है कि मैं (अर्थात searchDescArray["pumping gas"]
) खोज में तेजी लाने के साहचर्य सरणियों का उपयोग नहीं कर सकते हैं।
कोई भी विचार किसी को भी?
क्या आप स्ट्रिंग्स या तारों के अंदर की शुरुआत में खोज से मेल खाना चाहते हैं? यदि उपयोगकर्ता "पी" की खोज करता है, तो क्या इसमें परिणामस्वरूप "फ्लिपिंग बर्गर" शामिल होना चाहिए? – Guffa
descArr एक सरणी नहीं बल्कि एक शाब्दिक वस्तु है। –
@guffa, हां, यदि उपयोगकर्ता "पी" की खोज करता है तो इसमें परिणामस्वरूप "फ्लिपिंग बर्गर" शामिल होना चाहिए। मुझे लगता है कि अभी सबसे बड़ी धीमी गति वास्तविक खोज है। वर्तमान में मेरे पास एक लूप है जो सरणी पर पुनरावृत्त करता है और यह तुलना करता है: यदि (descArray [i] .search ("पी"))> -1) {// वापसी परिणाम} – TriFu