Javascript 数组中的最小偶数值

Javascript 数组中的最小偶数值,javascript,arrays,loops,for-loop,while-loop,Javascript,Arrays,Loops,For Loop,While Loop,所以,我有一个程序,它要求数组中的最小偶数值,我已经编写了代码,但我似乎错过了一个循环。我会写正确的代码,但我希望有人能解释为什么会有一个while循环 <HTML> <HEAD> <SCRIPT LANGUAGE = "JavaScript"> var number=new Array(10) for(var i=0; i<number.length; i=i+1) { number[i] =window

所以,我有一个程序,它要求数组中的最小偶数值,我已经编写了代码,但我似乎错过了一个循环。我会写正确的代码,但我希望有人能解释为什么会有一个while循环

    <HTML>
    <HEAD>
    <SCRIPT LANGUAGE = "JavaScript">

    var number=new Array(10)

  for(var i=0; i<number.length; i=i+1)
{ 
   number[i] =window.prompt('enter number ','')
   number[i] =parseFloat(number[i])
}

  var y = 0 
  while (number[y] % 2 != 0) //get the first even number in the array
{
    y = y + 1
}
//after you exit the while loop y will have the index of the first even number 

var Min 
Min = number[y] 

 for(var i=0; i<number.length; i=i+1)
{
    if (number[i] % 2 == 0)
    {
            if(number[i]<Min)
            {
                    Min= number[i]
            }
    }
}

document.write(Min)

</SCRIPT>
</HEAD>
</HTML>
我发现很难真正理解这个循环,如果我可能会问:有没有其他方法可以找到数组中的最小值?
非常感谢

while循环设置
Min
的第一个值,以便进行后续比较。这里有一个远的 做同样事情的更简单更快的方法:

var min = Infinity; // Start with the biggest number possible
for (var i=myArray.length;i--;){
  var val = myArray[i];
  if (val<min && val%2==0) min = val;
}

上面使用创建一个仅包含偶数值项的新数组,然后使用将值数组作为参数传递给。

如果您对如何在现代Javascript中实现这一点感兴趣,可以这样做:

minEvenElement = Math.min.apply(Math, myArray.filter(function(e) { return !(e % 2) }))

@啊,既然你问了“寻找最小值的另一种方法”,我已经编辑了我的答案,添加了一种替代方法,以避免在所有值上循环。如果你觉得这已经解决了你的问题,你应该。
var min = Math.min.apply(Math,myArray.filter(function(n){ return n%2==0 }));
minEvenElement = Math.min.apply(Math, myArray.filter(function(e) { return !(e % 2) }))