Javascript中Math.max和Math.max.apply的区别和用法详解


Posted in Javascript onAugust 24, 2020

最近在做一个小案例的时候遇到了Math.max.apply这么一个用法,之前很少遇到过感觉挺有趣的,就记录一下。

1Math.max

语法: Math.max(n1,n2,n3,...,nX)
返回值:max() 方法可返回指定的参数中带有较大的值的那个数

var a = Math.max(1,2,3,4);
console.log(a); //4

但是如果数据是放在一个数组里面,此时就不能这样调用了。这时就用到apply方法

2Math.max.apply

apply() 方法调用一个函数。简单理解为调用函数的方式,但是它可以改变函数的 this 指向,同时用指定数组替换函数的参数。

语法:fun.apply(thisArg, [argsArray])

  • thisArg:在fun函数运行时指定的 this 值 ,可以为null,就是不设置指向
  • argsArray:传递的值,必须包含在数组里面

这里额外补充一下,传递的值为数组形式,但是数组里是什么类型参数,返回的也是什么类型,比如输入的数组中是字符串这里取到的就是字符串,是数值取到的就是数值。比如传‘abc' 返回的也是‘abc'。(补充说明)

返回值:apply() 方法的返回值就是函数的返回值,因为它就是调用函数

var arr = [1, 66, 3, 99, 4];
var max = Math.max.apply(Math, arr);
var min = Math.min.apply(Math, arr);
console.log(max); //99
console.log(min); //1

2.1Math.max.apply拓展案例

这里我再举一个应用案例———自动生成编号(自增)
说明:data为一个json数组,里面的每个对象都一个id值

let maxBookCode = ()=>{ 
	let arr = [];  
	//遍历json数组,把所有对象的id存到arr这个空数组当中
  data.forEach((item)=>{  
  arr.push(item.id); 
  }); 
//最后返回里面id值最大的那个数
return Math.max.apply(null,arr);
}

外部调用 maxBookCode() + 1 就能自动生成编号并且是自增的。

总结

到此这篇关于Javascript中Math.max和Math.max.apply的区别和用法的文章就介绍到这了,更多相关Javascript中Math.max和Math.max.apply的区别和用法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
ExtJs 表单提交登陆实现代码
Aug 19 Javascript
js简单实现用户注册信息的校验代码
Nov 15 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
Nov 18 Javascript
javascript检查浏览器是否已经启用XX功能
Jul 10 Javascript
js实现表单Radio切换效果的方法
Aug 17 Javascript
Sublime Text 3常用插件及安装方法
Dec 16 Javascript
Node.js重新刷新session过期时间的方法
Feb 04 Javascript
jquery滚动条插件slimScroll使用方法
Feb 09 Javascript
微信小程序实现简单input正则表达式验证功能示例
Nov 30 Javascript
微信小程序常用简易小函数总结
Feb 01 Javascript
vue.js高德地图实现热点图代码实例
Apr 18 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
Mar 02 Javascript
在Vue中使用HOC模式的实现
Aug 23 #Javascript
详解Howler.js Web音频播放终极解决方案
Aug 23 #Javascript
利用React高阶组件实现一个面包屑导航的示例
Aug 23 #Javascript
vue中watch和computed的区别与使用方法
Aug 23 #Javascript
vue动态设置页面title的方法实例
Aug 23 #Javascript
Vue管理系统前端之组件拆分封装详解
Aug 23 #Javascript
Vue中keep-alive组件的深入理解
Aug 23 #Javascript
You might like
解析argc argv在php中的应用
2013/06/24 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
一些javascript一些题目的解析
2010/12/25 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
2016/03/11 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
jquery动态切换背景图片的简单实现方法
2016/05/14 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
2017/11/10 jQuery
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
vue移动端写的拖拽功能示例代码
2020/09/09 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
apache部署python程序出现503错误的解决方法
2017/07/24 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
Python爬虫设置代理IP(图文)
2018/12/23 Python
python系列 文件操作的代码
2019/10/06 Python
Python list与NumPy array 区分详解
2019/11/06 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
深入了解Python 方法之类方法 & 静态方法
2020/08/17 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
DOUGLAS荷兰:购买香水和化妆品
2020/10/24 全球购物
XML文档面试题
2015/08/05 面试题
让生命充满爱演讲稿
2014/05/10 职场文书
食品安全承诺书范文
2014/08/29 职场文书
「地球外少年少女」BD发售宣传CM公开
2022/03/21 日漫
Python中re模块的元字符使用小结
2022/04/07 Python