For循环未找到数组的最大值(Javascript)
我的函数“extremeValue”有两个参数,一个数组和一个字符串“Maximum”或“Minimum”,它根据该字符串返回数组的最大值或最小值。我使用了一个示例数组“values”来传递函数,虽然它可以很好地计算出最小值,但最大值是数组的最后一个值。我的代码怎么了For循环未找到数组的最大值(Javascript),javascript,arrays,for-loop,Javascript,Arrays,For Loop,我的函数“extremeValue”有两个参数,一个数组和一个字符串“Maximum”或“Minimum”,它根据该字符串返回数组的最大值或最小值。我使用了一个示例数组“values”来传递函数,虽然它可以很好地计算出最小值,但最大值是数组的最后一个值。我的代码怎么了 var值=[4,3,6,12,1,3,7]; 函数极值值(数组,最大值){ 如果(最大值==“最大值”){ var max=数组[0]; 对于(变量i=1;i数组[i-1]){ max=数组[i]; } } 返回最大值; } 否
var值=[4,3,6,12,1,3,7];
函数极值值(数组,最大值){
如果(最大值==“最大值”){
var max=数组[0];
对于(变量i=1;i数组[i-1]){
max=数组[i];
}
}
返回最大值;
}
否则如果(最大最小值==“最小值”){
var min=数组[0];
对于(var j=1;j 日志(极值(值,“最小”)代码>在每个循环中,您必须将项目与最大(或最小)值进行比较,而不是在项目之前:
var values = [4, 3, 6, 12, 1, 3, 7];
function extremeValue(array, maxmin) {
if (maxmin === "Maximum") {
var max = array[0];
for (var i = 1; i < array.length; i++) {
if (array[i] > max) {
max = array[i];
}
}
return max;
}
else if (maxmin === "Minimum") {
var min = array[0];
for (var j = 1; j < array.length; j++) {
if (array[j] < min) {
min = array[j];
}
}
return min;
}
}
console.log(extremeValue(values, "Maximum"));
console.log(extremeValue(values, "Minimum"));
var值=[4,3,6,12,1,3,7];
函数极值值(数组,最大值){
如果(最大值==“最大值”){
var max=数组[0];
对于(变量i=1;imax){
max=数组[i];
}
}
返回最大值;
}
否则如果(最大最小值==“最小值”){
var min=数组[0];
对于(var j=1;j
使用最大值更改检查
if (maxmin === "Maximum") {
var max = array[0];
for (var i = 1; i < array.length; i++) {
if (array[i] > max) { //not just before 'array[i-1]'
max = array[i];
}
}
return max;
}
从值中查找最大值。和
Math.min.apply( Math, values );
获取最小值。或者,您可以使用数学函数缩短代码:
var值=[4,3,6,12,1,3,7];
函数极值值(数组,最大值){
如果(最大值==“最大值”){
返回Math.max.apply(null,数组);
}
否则如果(最大最小值==“最小值”){
返回Math.min.apply(null,数组);
}
}
日志(极值(值,“最大”);
日志(极值(值,“最小”)代码>@jared smith谢谢你的编辑。没问题。回答得好。
Math.min.apply( Math, values );