JavaScript中的while循环和if语句

3
我正在尝试在Javascript中创建一个while循环。我有一个包含5个数字的数组,名为numbers。我还有一个变量bigone,其值为0。我想编写一个while循环,并使用if语句来将数组中的每个值与bigone进行比较。当数组中的数字大于bigone时,我希望将该数字分配给bigone。但我无法解决这个问题。以下是我目前为止的代码,但它不起作用。是的,这是一项作业,我不是在寻找答案,只是需要一些指导方向。以下是我的代码:
while ( numbers.length < 5 ) {
    if ( numbers > bigone ) {
    bigone = numbers
    }
  }

有什么想法吗?
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];
     }
 }

1

我猜你正在尝试找到数组中最大的数。另一种方法是使用forEach方法,它接受一个回调函数作为参数。该回调函数会对数组的每个元素执行一次。

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上的更多信息


最佳解决方案。但是我想提醒一下,它仅适用于ES5,例如在IE 8及以下版本中无法使用。 - basarat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接