• js学习总结----获取数组最大值


    一共四个方法,面试的时候可以考虑:

         var ary = [12,23,34,24,35,14,25,36]
    
            //1、排序法:从小到大排序,然后选择最后一个为最大
            ary.sort(function(a,b){
                return a-b;
            })
            var min = ary[0];
            var max = ary[ary.length - 1];
            console.log(min,max)
            /*
              2、假设法:假设当前数组中的第一个值是最大值,然后拿这个值和后面的项逐一进行比较,如果后面某一项比假设的还要大,说明假设错了,我们把假设的值进行替换
              和自定义属性一样,都是JS中最常用的编程思想
            */
            var max = ary[0];
            for(var i = 0;i<ary.length;i++){
                var cur = ary[i];
                cur>max?max = cur:null;
            }
            //3、使用Math中的max/min方法实现,以下代码实现不了
            console.log(Math.min(12,23,34,24,35,14,25,36));
            //它是在执行的时候,把需要比较的那堆数一个个的传递进来,这样才可以得到最后的结果,一下放一个ary数组进来是不可以的
            //第一次尝试
            Math.min([12,23,34,24,35,14,25,36])
            //join/toString ->"12,23,34,24,35,14,25,36"
            //eval:把一个字符串变为JS表达式执行
            //eval("12,23,34,24,35,14,25,36") 结果只会是最后一项 这里就涉及一个括号表达式的概念
            //第二次尝试
            "Math.max("+ary.toString()+")"//'Math.max(12,23,34,24,35,14,25,36)' 首先不要管其他的,先把我们最后要执行的代码都变成字符串,然后把数组中的每一项的值分别的拼接到这个字符串中
            var max = eval("Math.max("+ary.toString()+")")// 这个才是正解
            function fn1(){
                console.log(1)
            }
            function fn2(){
                console.log(2)
            }
            var obj = {name:'李四',fn:fn2}
            ;(fn1,fn2)();//只有fn2执行了->(x1,x2,x3...)括号表达式,一个括号中出现多项内容,中间用","隔开,但是我们最后获取到的结果只有最后一项
            (fn2,obj.fn)();//执行的是obj.fn,但是执行的时候最后的this是window而不是obj
            (obj.fn)()// this 还是obj
            
            //apply方法
            var max = Math.max.apply(null,ary);
  • 相关阅读:
    使用JavaWeb实现文件的上传和下载
    IDEA使用Maven创建Web项目的两种方式
    Window10系统下联想笔记本进入BIOS界面方法
    MarkDown语法
    PV-UV-QPS
    expect 安装 salt 客户端
    fg、bg、jobs、&、nohup、ctrl+z、ctrl+c 命令
    查看CPU 内存 硬盘 网络 查看进程使用的文件 uptime top ps -aux vmstat iostat iotop nload iptraf nethogs
    rpm 命令使用 和 lsof -p 1406 使用
    salt 执行shell 脚本 修改名字
  • 原文地址:https://www.cnblogs.com/diasa-fly/p/7093370.html
Copyright © 2020-2023  润新知