Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写一个函数,在javascript中查找数组的最大值/最小值_Javascript_Function_Max - Fatal编程技术网

编写一个函数,在javascript中查找数组的最大值/最小值

编写一个函数,在javascript中查找数组的最大值/最小值,javascript,function,max,Javascript,Function,Max,[不使用MIN/MATH函数] 问题要求我创建包含2个参数的函数。第一个参数是数组,第二个参数是字符串“最小值”或“最大值”。当我不知道如何将参数作为字符串输入函数时,我会感到困惑。因此,我决定创建两个类似的函数,分别为extremeValue(vector,max)和extremeValue(vector,minimum)(我仍然不知道是否可以这样做)。 这是我的极值(向量,最大值)代码 因此,我的方法是创建一个数组,它的值与vector[i]的值相同,我使用if语句来查看它是否大于该向量。但

[不使用MIN/MATH函数]

问题要求我创建包含2个参数的函数。第一个参数是数组,第二个参数是字符串“
最小值
”或“
最大值
”。当我不知道如何将参数作为字符串输入函数时,我会感到困惑。因此,我决定创建两个类似的函数,分别为
extremeValue(vector,max)
extremeValue(vector,minimum)
(我仍然不知道是否可以这样做)。 这是我的
极值(向量,最大值)
代码

因此,我的方法是创建一个数组,它的值与
vector[i]
的值相同,我使用if语句来查看它是否大于该向量。但是,代码是无效的:(

var向量=[3,1,1]
var最大值
//------------这个函数为我们提供了一个具有相同值的向量---------------//
函数集(值,len){
var-arr=[];
对于(变量i=0;i向量)
答案+=向量[计数]+“为最大值”
}
回覆
}
//---------------------------------------------------//
console.log(极值(向量,最大值))

您可以使用
数学
函数。将返回传递的数字中的最小数字。您不能直接在数组上调用这些函数,因此,您可以使用
应用
调用这些函数,并将
数组
作为参数传递给函数

Math.min()
函数返回零个或多个数字中的最小值

Math.max
如下所示:

//数组:源数组
//键入“max”或“min”以查找最大或最小数量
var getNum=函数(数组,类型){
返回数学[type]。应用(null,数组);
};
var-arr=[1,3,35,12];
document.write('Max:'+getNum(arr,'Max'));

document.write('
Min:'+getNum(arr,'Min'));
您可以这样做:

function extremeValue(my_arr, min_max) {
  var retval, i, len;
  for(i=0,len=my_arr.length; i < len; i++) {
     if (min_max == 'minimum') {
       retval = (my_arr[i] < retval ? my_arr[i] : retval);
     } else {
       retval = (my_arr[i] > retval ? my_arr[i] : retval);
     }
  }
  return retval;
}
console.log(extremeValue(vector, 'maximum'));
console.log(extremeValue(vector, 'minimum'));

不使用
Math
或任何其他javascript函数,您可以找到数组的
max
min
值,如下所示

var-arr=[2,3,5,10,2,-9,3];
警报(“最大值为”+arrayMaxMin(arr,“Max”));
警报(“最小值为”+arrayMaxMin(arr,“Min”));
函数arrayMaxMin(数组,选择器){
var val=array[0];//用于保存当前最大/最小值的变量。
对于(变量i=1;ival){
val=数组[i];
}
}
}
返回val;

}
这应该也行!希望对兄弟有帮助

 var arr = [2 ,4 ,56, 23, 10];
 var max = arr.reduce(function(x,y){
    return (x > y) ? x : y;
 });
 var min = arr.reduce(function(x,y){
    return (x < y) ? x : y;
 });
 console.log('Max: '+ max);
 console.log('Min: '+ min);
var-arr=[2,4,56,23,10];
var max=arr.reduce(函数(x,y){
返回(x>y)?x:y;
});
var最小值=arr.reduce(函数(x,y){
返回(x
没有内置的数学最小值/最大值方法:

让minMaxValues=(arr)=>{
让最大值;
让我们分享价值观;
for(设i=0;iarr[arr.length-1]){
最大值=arr[i];
}
}
console.log(最小值);
console.log(最大值);
}

minMaxValues([100,20,30,10,50]);
Hi.他们不允许我们使用min-max函数:(Hi.他们不允许我们使用min-max函数:(我没有使用
Math.min()
Math.max()
。Hi.他们不允许我们使用min-max函数:(@TimNguyen我已经更新了答案,使其在不使用
Math
函数的情况下工作:)
arrayMaxMin([10,1,12],“Min”)
将不起作用。您的示例之所以有效,是因为其中包含负数。
1
将返回false。您可以将答案更改为
var-val=array[0]
(var i=1;i
val=arr[i];
应该是to
val=array[i]
MAX不是一个常数,所以需要使用MAX作为命名约定?
 var arr = [2 ,4 ,56, 23, 10];
 var max = arr.reduce(function(x,y){
    return (x > y) ? x : y;
 });
 var min = arr.reduce(function(x,y){
    return (x < y) ? x : y;
 });
 console.log('Max: '+ max);
 console.log('Min: '+ min);