JavaScript如何求最大值
时间:2021-07-05
来源:互联网
今天PHP爱好者给大家带来方法:1、使用“Math.max()”函数求最大值,可返回两个指定的数中带有较大的值的那个数;2、使用递归函数求最大值;3、使用for循环遍历求最大值;4、使用“Math.max.apply(null,[值,值,值,值..)”语句求最大值。希望对大家有所帮助。
本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。
第一种方法
Math.max
JavaScript 提供了 Math.max 函数返回一组数中的最大值,用法是:
Math.max([value1[,value2, ...]])
值得注意的是:
如果有任一参数不能被转换为数值,则结果为 NaN。
max 是 Math 的静态方法,所以应该像这样使用:Math.max(),而不是作为 Math 实例的方法 (简单的来说,就是不使用 new )
如果没有参数,则结果为 -Infinity (注意是负无穷大)
而我们需要分析的是:
1.如果任一参数不能被转换为数值,这就意味着如果参数可以被转换成数字,就是可以进行比较的,比如:
Math.max(true, 0) // 1
Math.max(true, '2', null) // 2
Math.max(1, undefined) // NaN
Math.max(1, {}) // NaN
2.如果没有参数,则结果为 -Infinity,对应的,Math.min 函数,如果没有参数,则结果为 Infinity,所以:
var min = Math.min();
var max = Math.max();
console.log(min > max);
了解了 Math.max 方法,我们以求数组最大值的为例,思考有哪些方法可以实现这个需求。
原始方法
最最原始的方法,莫过于循环遍历一遍:
var arr = [6, 4, 1, 8, 2, 11, 23];
var result = arr[0];
for (var i = 1; i < arr.length; i++) {
result = Math.max(result, arr[i]);
}
console.log(result);
reduce
既然是通过遍历数组求出一个最终值,那么我们就可以使用 reduce 方法:
var arr = [6, 4, 1, 8, 2, 11, 23];
function max(prev, next) {
return Math.max(prev, next);
}
console.log(arr.reduce(max));
apply
使用 apply 是另一种。
var arr = [6, 4, 1, 8, 2, 11, 23];
console.log(Math.max.apply(null, arr))
ES6 …
使用 ES6 的扩展运算符:
var arr = [6, 4, 1, 8, 2, 11, 23];
console.log(Math.max(...arr))
第二种方法
使用递归函数
var arr = [9,8,55,66,49,68,109,55,33,6,2,1];
var max = arr[0];
function findMax( i ){
if( i == arr.length ) return max;
if( max < arr[i] ) max = arr[i];
findMax(i+1);
}
findMax(1);
console.log(max);
使用 for 循环遍历
var arr = [9,8,55,66,49,68,109,55,33,6,2,1];
var max = arr[0];
for(var i = 1; i < arr.length; i++){
if( max < arr[i] ){
max = arr[i];
}
}
console.log(max);
使用apply将数组传入max方法中直接返回
Math.max.apply(null,[9,8,55,66,49,68,109,55,33,6,2,1])
除此之外,还有很多数组排序方式,都可以在排序后,根据新数组索引值获取 最大/最小 值。
var a=[1,2,3,5];
console.log(Math.max.apply(null, a));//最大值
console.log(Math.min.apply(null, a));//最小值
多维数组可以这么修改:
var a=[1,2,3,[5,6],[1,4,8]];
var ta=a.join(",").split(",");//转化为一维数组
console.log(Math.max.apply(null,ta));//最大值
console.log(Math.min.apply(null,ta));//最小值
以上就是JavaScript如何求最大值的详细内容,更多请关注php爱好者其它相关文章!
-
王者荣耀新英雄影怎么连招-影技能连招 时间:2025-05-02
-
忘川低低低配版新手-新手日常周常休闲玩法 时间:2025-05-02
-
天下争霸三国志武将谁最强-探索三国志武将排名与策略 时间:2025-05-02
-
和平精英组队消费活动怎么玩-组队累充活动玩法 时间:2025-05-02
-
凡人传说玉皇天过图属性详解-提升凡人传说玉皇天角色属性技巧 时间:2025-05-02
-
王者荣耀亚瑟布丁狗之誓怎么样-王者荣耀亚瑟布丁狗之誓皮肤特效 时间:2025-05-02
今日更新
-
浅谈PHP中的装饰器模式
阅读:18
-
javascript如何定义字符串
阅读:18
-
PHP中Error与Exception的区别是什么
阅读:18
-
JavaScript也用import吗
阅读:18
-
聊一聊PHP中单元测试工具PHPUnit的用法
阅读:18
-
如何使用memory_limit限制PHP进程的内存使用
阅读:18
-
javascript是基于对象的吗
阅读:18
-
javascript和java一样吗
阅读:18
-
php正则怎么去掉 br
阅读:18
-
Sublime Text3怎么执行调试python文件
阅读:18