zoukankan      html  css  js  c++  java
  • JavaScript 数组最大值

    JavaScript 数组最大值

    在js中可以使用Math.max()获取最大值。

    如:

    console.log(Math.max("1","11","22"));
    //output:22
    

    但是如果我们传递一个数组的话,上述代码并不能正确输出

    如:

    var arrs=[1,2,5,10,30,99,22];
    console.log(Math.max(Math,arrs));
    //output:NaN
    

    apply

    使用apply方法可以传递一个数组,获取到最大值。

    var arrs=[1,2,5,10,30,99,22];
    console.log(Math.max.apply(Math,arrs));
    //console.log(Math.max.apply(null,arrs));
    //output: 99
    

    什么是apply

    apply() 方法调用一个函数, 其具有一个指定的this值,以及作为一个数组(或类似数组的对象)提供的参数。

    比如A有一个方法,而B没有,但是这时B要用到A的方法,可以把A的方法借给B使用。就用到了apply

    A.fun.apply(B,args);
    

    apply(thisArg,[argsArray])该方法有两个参数。

    第一个参数是函数借给的对象

    第二个参数是一个数组为该函数的参数。


    map

    map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

    如:

    var numbers = [1, 5, 10, 15];
    var doubles = numbers.map( x => x ** 2);
    console.log(doubles);
    //output:[2,10,20,30]
    

    如果我们有一个对象数组,要获取对象数组中的属性的最大值。可以使用map获取到该属性的数组,再使用Math.max.apply来获取最大值。

    如:

    var list=[{name:"n1",age:1},{name:"n1",age:14},{name:"n1",age:31},{name:"n1",age:10},{name:"n1",age:22},];
    console.log(Math.max.apply(null,list.map(x=>x.age)));
    //output:31
    
  • 相关阅读:
    sql server 表变量和临时表
    c# 操作excel 总结
    ifttt.com:让你的网络行为能引发连锁反应
    jQuery.tmpl.js
    [置顶]IFTTT与Google+是什么?ifttt怎么玩?
    使用 TRY/CATCH 语句解决 SQL Server 2005 死锁
    TFS2010 取消锁定
    Android 开发简介
    Cocos2d开发系列(七)
    针对中小型网站(3000人左右/15分钟)的服务器架构
  • 原文地址:https://www.cnblogs.com/JoeSnail/p/8125285.html
Copyright © 2011-2022 走看看