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 相关文章推荐
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
Dec 09 Javascript
让IE8支持DOM 2(不用框架!)
Dec 31 Javascript
JSON 和 JavaScript eval使用说明
Jun 13 Javascript
JavaScript之HTMLCollection接口代码
Apr 27 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
May 23 Javascript
详谈LABJS按需动态加载js文件
May 07 Javascript
jquery实现两边飘浮可关闭的对联广告
Nov 27 Javascript
BootStrap Datetimepicker 汉化的实现代码
Feb 10 Javascript
vue2.0 与 bootstrap datetimepicker的结合使用实例
May 22 Javascript
jquery中有哪些api jQuery主要API
Nov 20 jQuery
Vue实现PopupWindow组件详解
Apr 28 Javascript
JavaScript函数的4种调用方法实例分析
Mar 05 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
人族 Terran 基本策略
2020/03/14 星际争霸
Discuz 5.0 中读取纯真IP数据库函数分析
2007/03/16 PHP
php array_filter除去数组中的空字符元素
2020/06/21 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
PHP实现文件上传与下载
2020/08/28 PHP
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
2017/03/04 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析
2019/03/06 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
2020/05/12 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
[01:52]2014DOTA2西雅图邀请赛 V社开大会你不知道的小秘密
2014/07/08 DOTA
[01:11:32]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
windows上彻底删除jupyter notebook的实现
2020/04/13 Python
python中如何使用虚拟环境
2020/10/14 Python
python3中确保枚举值代码分析
2020/12/02 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
幼儿园运动会加油词
2014/02/14 职场文书
《开国大典》教学反思
2014/04/19 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
留学推荐信怎么写
2015/03/26 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
python小程序之飘落的银杏
2021/04/17 Python
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python