2016-09-25 8 views
0

forループでArray.every()関数を書く方法を知りたいと思います。私の例では、forループは繰り返しごとにtrueを5回出力します。どうすればいいですか?Array.every()のように、のすべての値が合格ならば、それを一度真に戻すにはどうしたらいいですか? "私の例では、forループの各反復のための真5回を返します。"Array.every()関数を書く

var array = [1,2,3,4,5]; 

console.log(array.every(function(num){return num < 6})) 

// the for loop will return true 5 times 
for(i=0;i<array.length;i++){ 
    if(array[i] < 6) 
    console.log(true) 
} 
+3

適切な実装 - HTTPS ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every#Polyfill –

+0

[OK]を参照してください。ありがとう。 – mattHunting10

答えて

1

ありません、それはしません、最初のreturn文は残りの項目を反復処理することなく、すぐに戻りますので。実際に実装したのは.some() methodの単純なバージョンで、少なくとも1つの項目が条件に一致する場合はtrueを返します。

あなただけのループの実装のためのシンプルで、すべての項目が条件と一致していることをテストするテストロジックを逆にして、すぐにあなたがない試合を行う要素を見つけるようfalseを返すようにしたい場合。ループにはアイテムがテストに失敗していない場合は、その後、ループが完了ので、その後true を返します。

for(i=0;i<array.length;i++){ 
    if(!(array[i] < 6)) 
    return false; 
} 
return true; 

あなたは.every()の完全な実装を見てみたいことがあります。MDN's .every() polyfill

+0

ええ、私はconsole.log()が5回印刷されるかどうかを言っていました。これは私があなたに感謝する必要があるものです。 – mattHunting10