javascript - js判断数组最大值的原理是什么求解?
PHPz
PHPz 2017-04-10 16:07:39
[JavaScript讨论组]

求解if求最大值的原理是什么?最小值用if判断又怎么取?

var arr = [1,12,4,124.45,8,99998,456];

for(var i=0;i<arr.length;i++){ 
    if(arr[0]<arr[i]){
        arr[0]=arr[i];
    }
}
PHPz
PHPz

学习是最好的投资!

全部回复(8)
怪我咯
var arr = [1,12,4,124.45,8,99998,456];
Math.max.apply(Math,arr);
Math.min.apply(Math,arr);
PHP中文网
    Array.prototype.max = function() {
        var max = null;
        for (var i in this) {
            var v = parseFloat(this[i]);
            if (max == null) {
                max = v;
            } else {
                max = v > max ? v : max;
            }
        }
        return max;
    }

test:

var a = [1, 3, 9, 5, 7];
a.max()

output: 9

巴扎黑

用三元判断,代码可以精简一些解决,也比较好理解

var arr = [1,12,4,124.45,8,99998,456];
var min=arr[0], max=arr[0];
for(var i=1;i<arr.length;i++){
    max = max > arr[i]?max:arr[i];
    min = min < arr[i]?min:arr[i];
}
console.log("max is: "+max+"; min is: "+min);

还有一个更精简的写法

var max = [1,12,4,124.45,8,99998,456].sort(function(a,b){return b-a})[0];
var min = [1,12,4,124.45,8,99998,456].sort(function(a,b){return a-b})[0];
console.log(max,min);
阿神

表闹,这个能求最大值?

黄舟

个人认为,对于无序数组应该新进行排序,然后取极值就简单了

阿神
var max; //用 max 记录当前找到的最大值
max = arr[0];
for(var i=0;i<arr.length;i++){  if(arr[i]>max) { max=arr[i]}}
// 目前max是前 i-1 个数的最大值,现在加入第i个数,
// 那么前 i 个数的最大值就是前 i-1 个数的最大值和第i个数中较大的那个

上面代码稍微一改就是你的代码(其实 i 可以从1开始循环)

伊谢尔伦

这种没注释的 也看不懂的 我就不看了
直接自己想就好了
这题实际上从无序到有序的过程,不断获取信息,减熵就好了

巴扎黑

有个比较好的方法,挑选出一个数组中最大/小值
var checkArr=[1,8,1,9,2];
//最大值
Math.max.apply(Math,checkArr);
//最小值
Math.min.apply(Math,checkArr);

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号