2011-12-21 8 views

उत्तर

18

-1 का अर्थ है "कोई मुकाबला नहीं मिला"।

"झूठी" के बजाय -1 लौटने का कारण यह है कि स्ट्रिंग की शुरुआत में एक सुई स्थिति 0 पर होगी, जो जावास्क्रिप्ट में झूठी के बराबर है। तो वापसी -1 सुनिश्चित करता है कि आप जानते हैं कि वास्तव में एक मैच नहीं है।

+0

यही वह है जिसे मैं ढूंढ रहा था। धन्यवाद। –

8

-1 का मतलब है कोई मुकाबला नहीं पाया जाता है। "अच्छा" उस वाक्य में नहीं है। यह documentedbehaviour है।

indexOf() विधि पहले सूचकांक, जिस पर एक दिया तत्व सरणी में पाया जा सकता है, या -1 अगर यह मौजूद नहीं है देता है।

7

क्योंकि सरणी 0 आधारित हैं, 0 लौटने का मतलब पहला अक्षर से शुरू होना था; 1, दूसरा चरित्र, और इसी तरह। इसका मतलब है कि कुछ भी 0 और ऊपर एक सत्य या "पाया" प्रतिक्रिया होगी। पूर्णांक श्रेणी में सब कुछ रखने के लिए, -1 कोई मिलान नहीं मिलता है।

1

इंडेक्स के लिए एक और कारण है -1 वापस लौटने पर जब कोई मिलान नहीं मिलता है। नीचे दिए गए कोड पर विचार करें:

if (~str.indexOf(pattern)){ 
    console.log('found') 
}else{ 
    console.log('not found') 
} 

क्योंकि ~ (-1) = 0 तो तथ्य यह है कि indexOf लौटने -1 यह आसान है, तो लिखने के लिए बनाता है ... किसी और का उपयोग कर ~।