Javascript 函数从值数组中查找最大值,而不使用'Math.max()`
我想创建一个函数,从一个值数组中查找最高/最大值。 例如:数字=[2,24,48,9,15,41]。 除了使用Math.max之外,如何进行此操作?试试以下方法:Javascript 函数从值数组中查找最大值,而不使用'Math.max()`,javascript,arrays,function,max,Javascript,Arrays,Function,Max,我想创建一个函数,从一个值数组中查找最高/最大值。 例如:数字=[2,24,48,9,15,41]。 除了使用Math.max之外,如何进行此操作?试试以下方法: function maxVal(array){ let indexOfMax = 0; for (let i = 0; i < array.length; i++){ if (array[i] > array[indexOfMax]){ indexOfMax = i;
function maxVal(array){
let indexOfMax = 0;
for (let i = 0; i < array.length; i++){
if (array[i] > array[indexOfMax]){
indexOfMax = i;
}
}
return array[indexOfMax];
}
只需使用Array.prototype.reduce,它通常是进行简单数学运算(如获取平均值、范围或最小-最大值)的最聪明的方法
函数最大值{
返回值.reduceprev,curr=>curr>prev?curr:prev
}
//或者不使用“…rest”参数直接使用数组
函数maxFromArrvalues{
返回值.reduceprev,curr=>curr>prev?curr:prev
}
有了这些,您就有了一些干净高效的代码:
max1,2,3,8435,32,0/=>432
//或用于数组
常量arr=[1,2,3,72,32,0]
maxFromArrayarr/=>74
//或
最大…arr/=>74
常见陷阱
当比较数字时,通常总是测试一个正的is而不是isNot
检测阳性结果的电流是否更大?使用电流,而不是电流是否较小?use previous还将自动处理任何无法转换为正确数字的项目,将数字与NaN进行比较将始终返回false。12