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面向对象包装类Class封装类库剖析
Jan 24 Javascript
图片上传判断及预览脚本的效果实例
Aug 07 Javascript
js点击事件链接的问题解决
Apr 25 Javascript
javascript Deferred和递归次数限制实例
Oct 21 Javascript
使用JavaScript实现ajax的实例代码
May 11 Javascript
超简单的Vue.js环境搭建教程
Mar 17 Javascript
Bootstrap图片轮播效果详解
Oct 17 Javascript
JS运动特效之链式运动分析
Jan 24 Javascript
vue cli构建的项目中请求代理与项目打包问题
Feb 26 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
Apr 13 Javascript
详解npm 配置项registry修改为淘宝镜像
Sep 07 Javascript
Vue清除定时器setInterval优化方案分享
Jul 21 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简单实现数字分页功能示例
2016/08/24 PHP
php compact 通过变量创建数组
2016/11/15 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
基于js实现的图片拖拽排序源码实例
2020/11/04 Javascript
Python中列表元素转为数字的方法分析
2016/06/14 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
2018/05/31 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
Python地图绘制实操详解
2019/03/04 Python
python读写csv文件实例代码
2019/07/05 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
中国首家奢侈品O2O网购平台:第五大道奢侈品网
2017/12/14 全球购物
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
自荐信模版
2013/10/24 职场文书
思想汇报范文
2013/11/04 职场文书
厨房工作人员岗位职责
2013/11/15 职场文书
机电一体化专业毕业生自荐信
2014/06/19 职场文书
婚庆公司开业主持词
2015/06/30 职场文书
2015年信息化建设工作总结
2015/07/23 职场文书
2016年猴年新春致辞
2015/08/01 职场文书
公司周年庆寄语
2019/06/21 职场文书
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS
美国运营商 T-Mobile 以 117.83Mb/s 的速度排第一位
2022/04/21 数码科技