如何在循环时键入检查并返回最大数量的数组?我无法让下面的代码工作。
var v = prompt("Enter a Value", "0");
var w = prompt("Enter a Value", "0");
var x = prompt("Enter a Value", "0");
var y = prompt("Enter a Value", "0");
var z = prompt("Enter a Value", "0");
var num1 = parseInt(v, 10);
var num2 = parseInt(w, 10);
var num3 = parseInt(x, 10);
var num4 = parseInt(y, 10);
var num5 = parseInt(z, 10);
var numArray = [num1, num2, num3, num4, num5];
var highest = 0;
for (var i = 0; i <= numArray.length; i++) {
if (numArray[i] > highest) {
highest = numArray[i];
}
}
return(highest);
答案 0 :(得分:5)
你可以这样做:
var highest = Math.max.apply(null, numArray);
答案 1 :(得分:1)
您可能想要这样做:
var numArray = [num1, num2, num3, num4, num5];
var highest = numArray[0];
for (var i=1; i<=numArray.length; i++){
if (numArray[i]>highest){
highest=numArray[i];
}
}
return(highest);
区别在于:如果设置highest = 0
,则表示您输入的最高值为负数的可能性为折扣 - 因此对于-1,-2,-3,-4,-5
作为输入,返回值仍为{{1} }。通过说“这是我看到的第一件事:根据定义是最高的”,然后将其他值(第二,第三等)与你的“当前最佳”进行比较,你就避免了这个错误。这种东西出现在软件的各个地方 - 通常“第一次迭代”必须有点不同。在这种情况下,我完全有效地完成了循环的第一次迭代。