2016-03-22 8 views
1

基本的には、candidates_ignore配列に候補idが見つかった場合は、拒否リスト に追加する必要があります。それ以外の場合は、jQueryが何かを指示してくれていないときに配列に入っています

ID 33以外のすべての候補がリストにあります。あなたはそれが含まれなければならないので、33無視リストにない、コンソールで見ることができるようですが、id 33と1が含ま

を拒否していないされているいくつかの理由で、このscreenshot

を参照してください。しかし、彼が無視リストにいても、何らかの理由で23が含まれていますか?

コード:

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

       $results_rejected.append(output); 
      } 
      else { 

       $results_included.append(output); 
      } 

フルコード:

jQueryのウェブサイトからhttp://pastebin.com/mDQksz5r

答えて

1

$ .inArray()メソッドではJavaScriptのネイティブ.indexOfに似ています( )メソッドでは、一致するものが見つからない場合は-1を返します。配列内の最初の要素がvalueと一致する場合、$ .inArray()は0を返します。

JavaScriptは0を偽とゆるく(つまり0 == false、0!== false)扱いますので、配列内に値が存在する場合、それが-1と等しくない(またはより大きい)かどうかをチェックする必要があります。

値の比較は厳密です。以下は、-1を返します(見つからない)数は、文字列の配列に検索されているので:

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

    $results_rejected.append(output); 
} 
else { 

    $results_included.append(output); 
} 

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

+0

神ああ...私はそれは簡単だったなんて信じられません。私は$ .inArrayがboolを返したと思った。 – Ben

+0

@BenShepherd私も。多くのトラブルの後、私はjqueryのウェブサイトをチェックし、それを知る;) –

関連する問題