2011-06-15 10 views
23

Olası çoğaltmaları x ise:
Test for value in Javascript Array
Best way to find an item in a JavaScript Array ?
Javascript - array.contains(obj)JavaScript

Genellikle python programı ama son zamanlarda JavaScript öğrenmeye başladılar.

python'da bu mükemmel geçerli olduğu açıklamada ise:

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!" 

ama sorunun olduğu JavaScript aynı şeyi yapıyor vardı.

X'in listede y olup olmadığını nasıl kontrol edersiniz?

+2

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

cevap

30

JS 1.6'da tanıtılan indexOf kullanın. Bu JS sürümünü uygulamayan tarayıcılara destek eklemek için söz konusu sayfadaki "Uyumluluk" bölümünde listelenen kodu kullanmanız gerekecektir.

JavaScript bir in operatörüne sahiptir, ancak tuşları ve değil değerleri için test eder.

12

javascript size sadece modern tarayıcılar tarafından desteklenir

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

P.S. .: kullanabilirsiniz. daha genric şekilde

+0

Sadece modern tarayıcılarda. –

+0

@ T.J - Nokta alındı. Hangi tarayıcılar bunu desteklemiyor? –

+0

Tam listeyi bilmiyorum, ancak IE8 ve altında eksik (evet, gerçekten). Microsoft sonunda IE9'a ekledi. Bence diğer majörler yıllardır bunu biliyorlardı, bazı mobil tarayıcıları (Blackberry, vb.) Bilmezlerdi. Buradan kontrol edebilirsiniz (http://jsbin.com/uzama4/3). –

4

sonra bu bu işlevi çağırmak bu-

//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; 
}; 

gibi yapabilirsiniz

if (myList.inArray('search term')) { 
    document.write("It's in the list!") 
}