2011-06-15 11 views
23

संभावित डुप्लिकेट:
Test for value in Javascript Array
Best way to find an item in a JavaScript Array ?
Javascript - array.contains(obj)जावास्क्रिप्ट अगर

मैं आमतौर पर अजगर में कार्यक्रम लेकिन हाल ही में जावास्क्रिप्ट जानने के लिए शुरू कर दिया है।

अजगर में यह एक पूरी तरह से वैध है अगर बयान:

list = [1,2,3,4] 
x = 3 
if x in list: 
    print "It's in the list!" 
else: 
    print "It's not in the list!" 

लेकिन मैं poblems जावास्क्रिप्ट में ही बात कर पड़ा है।

आप कैसे जांचते हैं कि एक्स जावास्क्रिप्ट में x सूची में है या नहीं?

+2

http://stackoverflow.com/questions/237104/javascript-array -containsobj –

उत्तर

30

indexOf का उपयोग करें जो जेएस 1.6 में पेश किया गया था। आपको उन पृष्ठों के लिए समर्थन जोड़ने के लिए उस पृष्ठ पर "संगतता" के तहत सूचीबद्ध कोड का उपयोग करना होगा जो जेएस के उस संस्करण को लागू नहीं करता है।

जावास्क्रिप्ट में in ऑपरेटर है, लेकिन यह कुंजी के लिए परीक्षण करता है और मूल्य नहीं।

12

जावास्क्रिप्ट में आप

if(list.indexOf(x) >= 0) 

पी.एस .: आधुनिक ब्राउज़रों में केवल समर्थित उपयोग कर सकते हैं।

+0

केवल आधुनिक ब्राउज़रों पर। –

+0

@ टीजे - प्वाइंट लिया गया। कौन से ब्राउज़र इसका समर्थन नहीं करते हैं? –

+0

मुझे पूरी सूची नहीं पता है, लेकिन यह आईई 8 और नीचे से गायब है (हाँ, वास्तव में)। माइक्रोसॉफ्ट ने अंततः इसे आईई 9 में जोड़ा। मुझे लगता है कि अन्य प्रमुखों ने इसे सालों से लिया है, कुछ मोबाइल ब्राउज़र (ब्लैकबेरी इत्यादि) के बारे में नहीं पता होगा, आप [यहां] (http://jsbin.com/uzama4/3) देख सकते हैं। –

4
अधिक genric तरह से

आप इस-

//create a custopm function which will check value is in list or not 
Array.prototype.inArray = function (value) 

// Returns true if the passed value is found in the 
// array. Returns false if it is not. 
{ 
    var i; 
    for (i=0; i < this.length; i++) { 
     // Matches identical (===), not just similar (==). 
     if (this[i] === value) { 
      return true; 
     } 
    } 
    return false; 
}; 

की तरह कर सकते हैं तो यह इस फ़ंक्शन को कॉल रास्ता

if (myList.inArray('search term')) { 
    document.write("It's in the list!") 
} 
संबंधित मुद्दे