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 相关文章推荐
Ext javascript建立超链接,进行事件处理的实现方法
Mar 22 Javascript
javascript获取xml节点的最大值(实现代码)
Dec 11 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
Jun 24 Javascript
node.js中的fs.rmdir方法使用说明
Dec 16 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
Oct 14 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
May 05 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
Aug 02 Javascript
JS正则子匹配实例分析
Dec 22 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
Jun 20 jQuery
javascript实现计算指定范围内的质数示例
Dec 29 Javascript
Vue 的双向绑定原理与用法揭秘
May 06 Javascript
微信小程序实现底部弹出框
Nov 18 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中exec函数和shell_exec函数的区别
2014/08/20 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
jquery 锁定弹出层实现代码
2010/02/23 Javascript
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
JS+css 图片自动缩放自适应大小
2013/08/08 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
使用JavaScript 实现的人脸检测
2015/03/24 Javascript
jQuery Mobile页面返回不需要重新get
2016/04/26 Javascript
聊一聊jQuery插件uploadify使用方法
2016/08/24 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
使用setup.py安装python包和卸载python包的方法
2013/11/27 Python
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
python做量化投资系列之比特币初始配置
2018/01/23 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
python环形单链表的约瑟夫问题详解
2018/09/27 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
python网络编程之五子棋游戏
2020/05/14 Python
比较一下entity bean和session bean
2013/12/27 面试题
幼儿园母亲节活动方案
2014/03/10 职场文书
通信工程专业求职信
2014/06/04 职场文书
详细的本科生职业生涯规划范文
2014/09/16 职场文书
python某漫画app逆向
2021/03/31 Python
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫