2016-03-22 20 views
1

Bir dizide, bir aday kimliği candidates_ignore dizisinde bulunursa, reddedilenler listesine eklenmesi gerekir, aksi takdirde bunlar listeye eklenirjQuery bir şeye işaret ediyor

Tüm adaylar 33 kimliğinin dışında listede yer almaktadır. Konsolda görebileceğiniz gibi Ama nedense id 33 ile değil dahil

reddedilen edildiğini dahil edilmelidir böylece 33 gözardı listede yok, bu screenshot

görüyoruz. Ama ne olursa olsun 23 göz ardı listesinde olsa bile dahil ediliyor?

kodu:

  if($.inArray(cand.id, candidates_ignore)) { 

       $results_rejected.append(output); 
      } 
      else { 

       $results_included.append(output); 
      } 

tam kodu:

jQuery web sitesinden http://pastebin.com/mDQksz5r

cevap

1

:

$ .inArray() metodu JavaScript'in yerli .indexOf benzer () yöntemi, bir eşleşme bulamadığında -1 döndürür. Dizideki ilk öğe değerle eşleşiyorsa, $ .inArray() 0 değerini döndürür.

JavaScript, 0'ı false'ye gevşek olarak eşit olarak kabul eder (yani 0 == false, ancak 0! == false). dizinin içindeki değer varlığı, (veya büyüktür) -1 değerine eşit olup olmadığını kontrol etmeniz gerekir.

Değerler arasındaki karşılaştırma katıdır. Aşağıdaki dönecektir -1 (bulunamadı) bir sayı dizelerden oluşan bir dizide arandı çünkü:

if($.inArray(cand.id, candidates_ignore)<0) { 

    $results_rejected.append(output); 
} 
else { 

    $results_included.append(output); 
} 

https://api.jquery.com/jQuery.inArray/

+0

Aman tanrım ... bu kadar basit inanamıyorum. $ .inArray'ın bana bir – Ben

+0

@BenShepherd bool verdiğini düşündüm. Bir sürü sorundan sonra jQuery web sitesini kontrol ettim ve bunu öğrendim;) –

İlgili konular