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

JavaScript 数组最大值的更多相关文章

  1. JavaScript数组求最大值 面试题

    1.JavaScript数组求最大值 (1)方法一:借用math.max (2)方法二:ES6 2.代码 <!DOCTYPE html> <html lang="zh&qu ...

  2. Javascript数组操作

    使用JS也算有段时日,然对于数组的使用,总局限于很初级水平,且每每使用总要查下API,或者写个小Demo测试下才算放心,一来二去,浪费不少时间:思虑下,堪能如此继续之?当狠心深学下方是正道. 原文链接 ...

  3. Javascript数组操作(转)

    1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...

  4. JavaScript 数组

    JavaScript 数组 简介:数组是值的有序集合,JavaScript在同一个数组中可以存放多种类型的元素,而且是长度也是可以动态调整的,可以随着数据增加或减少自动对数组长度做更改. 一:创建数组 ...

  5. javascript数组的知识点讲解

    javascript数组的知识点讲解 阅读目录 数组的基本方法如下 concat() join() pop() push() reverse() shift() sort() splice() toS ...

  6. 第七章:Javascript数组

    数组是值的有序结合.每个值叫做一个元素,而每个元素在数组中都有一个位置,用数字表示,称为索引. javascript数组是无类型的:数组的元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的类 ...

  7. javascript数组操作汇总

    javascript之数组操作 - 不悔的青春 - 博客园 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array( ...

  8. JavaScript 数组基本操作

    简介 数组操作无论是在JavaScript中还是在其他语言中都是很常见.经常会用到的,现在我把JavaScript 数组基本操作整理一下,供大家参考学习.里边包含我自己的见解以及案例,希望能够帮助大家 ...

  9. JavaScript数组的22种方法

    原文:http://www.cnblogs.com/xiaohuochai/p/5682621.html javascript中数组的22种方法   前面的话 数组总共有22种方法,本文将其分为对象继 ...

随机推荐

  1. java 分页导出百万级数据到excel

    最近修改了一个导出员工培训课程的历史记录(一年数据),导出功能本来就有的,不过前台做了时间限制(只能选择一个月时间内的),还有一些必选条件, 导出的数据非常有局限性.心想:为什么要做出这么多条件限制呢 ...

  2. 很考验人的java内存加载面试题

    源代码如下,求结果 public class MemoryAnalyse { public static int k = 0; public static MemoryAnalyse t1 = new ...

  3. python --- 协程编程(第三方库gevent的使用)

    1. 什么是协程? 协程(coroutine),又称微线程.协程不是线程也不是进程,它的上下文关系切换不是由CPU控制,一个协程由当前任务切换到其他任务由当前任务来控制.一个线程可以包含多个协程,对于 ...

  4. ASP.NET MVC5+EF6+EasyUI 后台管理系统(88)-Excel导入和导出-自定义表模导出

    前言 之前说了导入和导出,也提供了自定义的表模的导入,可见LinqToExcel可以做的事情不仅仅如此 这次我们来演示比较复杂的导出Excel,导出复杂的Excel与导入复杂的Excel原理基本是一样 ...

  5. C语言之找零钱

    #include<stdio.h>int main(){ int one,tow,five,num=1; for (one = 1; one < num*10; one++) { f ...

  6. TCP/IP协议栈 --- 网络层(IP 首部 和分片)

    IP 是TCP/IP协议栈中重要的层次, TCP UDP ICMP IGMP都是依赖IP层进行传输的.首先它是一种不可靠,无连接的协议.不可靠:它不保证IP包能正确到达目的地,无连接:表示IP并不会维 ...

  7. Swarm 如何存储数据?- 每天5分钟玩转 Docker 容器技术(103)

    service 的容器副本会 scale up/down,会 failover,会在不同的主机上创建和销毁,这就引出一个问题,如果 service 有要管理的数据,那么这些数据应该如何存放呢? 选项一 ...

  8. UVA434 - Matty's Blocks

    题意:已知前视图和右视图,求最少需要几个正方体以及至多可以再增加几个正方体. 分析:先对于最小木块数,要想用最少的立方体搭建,那就意味着前视图中的每一竖立方体的高度最好都要被右视图中的高度所利用到.所 ...

  9. 手动安装Nginx

    本分类下有一个环境一键安装.那这背后发生了什么呢?咱们手动使用源码进行安装.1.首先保证有一个能联网的centos.2.百度 ningx 官网   点download  http://nginx.or ...

  10. 初识CSS

    css解释 css样式: css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化,CSS的可以使页面更加的美观.基本上所有的html页面都或多或少的使用cs ...