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 相关文章推荐
建立良好体验度的Web注册系统ajax
Jul 09 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
Mar 03 Javascript
javascript中html字符串转化为jquery dom对象的方法
Aug 27 Javascript
jQuery焦点图切换特效代码分享
Sep 15 Javascript
学习jQuey中的return false
Dec 18 Javascript
基于JQuery实现分隔条的功能
Jun 17 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
Jun 21 Javascript
Node.js中常规的文件操作总结
Oct 13 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
Jan 23 Javascript
详解性能更优越的小程序图片懒加载方式
Jul 18 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
Sep 05 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
Nov 07 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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
PHP $_FILES函数详解
2011/03/09 PHP
PHP中的print_r 与 var_dump 输出数组
2016/06/13 PHP
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
基于jquery的动态创建表格的插件
2011/04/05 Javascript
情人节之礼 js项链效果
2012/02/13 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
js实现放大镜特效
2017/05/18 Javascript
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
JavaScript实现单点登录的示例
2020/09/23 Javascript
创建与框架无关的JavaScript插件
2020/12/01 Javascript
Python调用C# Com dll组件实战教程
2017/10/12 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
python实现计算器功能
2019/10/31 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
python能在浏览器能运行吗
2020/06/17 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
Lookfantastic挪威官网:英国知名美妆购物网站
2017/07/26 全球购物
毕业生求职简历的自我评价
2013/10/07 职场文书
甲方资料员岗位职责
2013/12/13 职场文书
感恩母亲节活动方案
2014/03/04 职场文书
成绩单家长评语大全
2014/04/16 职场文书
opencv读取视频并保存图像的方法
2021/06/04 Python
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS