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 AjaxQueue改进步骤
Oct 06 Javascript
js简单实现点击左右运动的方法
Apr 10 Javascript
text-align:justify实现文本两端对齐 兼容IE
Aug 19 Javascript
javascript中错误使用var造成undefined
Mar 31 Javascript
jQuery ajax应用总结
Jun 02 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
Nov 09 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
Aug 14 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
Mar 07 Javascript
深入理解Promise.all
Aug 08 Javascript
js中位运算的运用实例分析
Dec 11 Javascript
Vue.js样式动态绑定实现小结
Jan 24 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
May 10 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
php smarty函数扩展
2010/03/15 PHP
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
2016/07/15 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
ext combobox动态加载数据库数据(附前后台)
2014/06/17 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
DropDownList实现可输入可选择(两种版本可选)
2016/12/07 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
2018/11/16 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
Python字符串及文本模式方法详解
2020/09/10 Python
python 检测图片是否有马赛克
2020/12/01 Python
StubHub新加坡:购买和出售全球活动门票
2017/03/10 全球购物
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
生物制药毕业生自荐信
2013/10/16 职场文书
环境工程大学生自荐信
2013/10/21 职场文书
眼镜促销方案
2014/03/15 职场文书
班组建设经验交流材料
2014/05/12 职场文书
大学迎新生标语
2014/10/06 职场文书
股权转让协议范本
2014/12/07 职场文书
大学生活委员竞选稿
2015/11/21 职场文书
导游词之凤凰古城
2019/10/22 职场文书
python实现简单聊天功能
2021/07/07 Python
JavaScript前端面试组合函数
2022/06/21 Javascript