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 相关文章推荐
jquery动态加载图片数据练习代码
Aug 04 Javascript
求数组最大最小值方法适用于任何数组
Aug 16 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
Nov 04 Javascript
js中通过父级进行查找定位元素
Jun 15 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
Aug 26 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
Dec 19 Javascript
angular+bootstrap的双向数据绑定实例
Mar 03 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
May 15 jQuery
VueJs 搭建Axios接口请求工具
Nov 20 Javascript
详细分析jsonp的原理和实现方式
Nov 20 Javascript
Bootstrap模态对话框中显示动态内容的方法
Aug 10 Javascript
JS实现打砖块游戏
Feb 14 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
一个简单实现多条件查询的例子
2006/10/09 PHP
php zip文件解压类代码
2009/12/02 PHP
Apache中php.ini的设置方法
2013/02/28 PHP
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
PHP base64编码后解码乱码的解决办法
2014/06/19 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
<script defer> defer 是什么意思
2009/05/10 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
Js遍历键值对形式对象或Map形式的方法
2016/08/08 Javascript
微信小程序中hidden不生效原因的解决办法
2017/04/26 Javascript
Node.js readline 逐行读取、写入文件内容的示例
2018/03/01 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
Python中asyncore的用法实例
2014/09/29 Python
python的类方法和静态方法
2014/12/13 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
python使用suds调用webservice接口的方法
2019/01/03 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
2020/04/20 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
酒店管理专业毕业生推荐信
2013/11/10 职场文书
预备党员承诺书
2014/03/25 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
2019年消防宣传标语集锦
2019/11/21 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python