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