3

Javascript で while ループを作成しようとしています。5 つの数字を含む numbers という配列があります。0 に設定された bigone という変数もあります。配列内の各値を bigone と比較する if ステートメントを含む while ループを記述しようとしています。配列スロットの数値が bigone より大きい場合、その数値を bigone に割り当てたいと思います。私はそれを理解することはできません。ここに私がこれまでに持っているものがありますが、うまくいきません。はい、これは宿題です。いいえ、答えを求めているのではなく、正しい方向へのガイダンスを求めているだけです。これが私が得た限りです:

while ( numbers.length < 5 ) {
    if ( numbers > bigone ) {
    bigone = numbers
    }
  }

何か案は?

4

2 に答える 2

2

配列内の値にアクセスできるようにカウンターを実装します。

var i = 0;
while(numbers.length < 5 && i < numbers.length)
{
    if(numbers[i] > bigone)
        bigone = numbers[i];

    i++;
}

これは同じループですが、for. 配列に5つ以下の要素があるかどうかを確認している理由はわかりませんが、問題ありません。これにより、反復ごとに長さがチェックされます。

for(var i = 0; numbers.length < 5 && i < numbers.length; i++)
{
    if(numbers[i] > bigone)
        bigone = numbers[i];
}

一度だけチェックするより良い方法は、次のようなステートメントでforループをラップすることです。if

 if(numbers.length < 5)
 {
     for(var i = 0; i < numbers.length; i++)
     {
         if(numbers[i] > bigone)
             bigone = numbers[i];
     }
 }
于 2013-04-26T03:55:01.963 に答える
1

配列内の最大数を見つけようとしていると思います。これを行う別の方法は、コールバック関数を引数として受け取る forEach メソッドを使用することです。コールバックは、配列の要素ごとに 1 回実行されます。

var numbers = [4, 12, 3, 5, 1]
var big  = 0;
numbers.forEach(function(number) { if(number > big) big = number; });
console.log(big); //Prints 12

Array.forEach の詳細

于 2013-04-26T04:12:14.460 に答える