2011-01-07 7 views
0

これは私の問題です。ちょっと疲れているかもしれませんが、配列に数値がなかった場合にのみ++をカウンターしたいです。 4回の反復中繰り返し時に配列をvarと比較する(続き)

意味、カウンターだけ反復1,3,4

var array = [], number, temp = [4,2,5,9], counter = 0; 
for(var i = 0; i <= 3; i += 1) { 
    array.push(i); 
    number = temp[i]; 
} 
document.write(counter); 

しかし、私はここに空白を描いてる上++必要があります...ヘルプ?

答えて

0
if (array.indexOf(number) < 0) 
    counter++; 
0

が、残念ながらJSは "in_array" を持っていない(NOこれは宿題ではない)、それはかなりまっすぐ進むです:@MikeSamuelが指摘
あなたはのindexOf(感謝マイク)を使用することができます。だからとは言われている:

var array = [], number, temp = [4,2,5,9], counter = 0; 
for(var i = 0; i <= 3; i += 1) { 
    array.push(i); 
    number = temp[i]; 
    if (temp.indexOf(i)==-1) // much simpler, assuming you're checking if i is in temp. 
     counter++; // increase counter if it is not. 
} 
document.write(counter); 

私はわからないんだけど、あなたがそれを把握またはより具体的にする必要がありますので、あなたは、ロジックをしたい。確認している配列を繰り返し処理し、 "針"が "干し草"配列に含まれているかどうかを確認する必要があることだけを知っています。

EDIT反対に、boolを追加して存在を確認しました。

+0

「Array.prototype.indexOf」はES5で定義されています。 'temp'に重複が含まれているとカウントしすぎないように、封じ込めをテストしているならば、マッチで' break'する必要はありませんか? –

+0

@MikeSamuel:私はindexOfが配列のプロトタイプを持っているのを知らなかった。知っておいてよかった。そして、私はループを変更しました(ただし、indexOfが動作することがわかったので、私はこれをもう一度変更します)。ありがとうございました。 –

+0

jQueryが提供し、in_array関数が提供するメモ... http://api.jquery.com/jQuery.inArray/ – mike

関連する問題