2013-04-26 178 views
3

我想在Javascript中创建while循环。我有一个数组,其中包含5个数字。我也有一个名为bigone的变量设置为0.我正在尝试编写一个while循环,该循环具有一个将数组中的每个值与bigone进行比较的if语句。当数组插槽中的数字大于bigone时,我想将该数字分配给bigone。我无法弄清楚。这是我到目前为止,但它不会工作。是的,这是家庭作业,不,我不是要求答案,只是为了一些正确的方向指导。这里是据我所知︰Javascript while while语句循环

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

任何想法?

回答

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 

+0

最佳解决方案。不过,我想提及的仅仅是ES5,例如在IE 8及以下版本中不起作用。 – basarat 2013-04-26 04:25:52