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 Object.extend
May 18 Javascript
JavaScript调试工具汇总
Dec 23 Javascript
jQuery实现提示密码强度的代码
Jul 15 Javascript
深入理解JavaScript中的箭头函数
Jul 28 Javascript
js console.log打印对像与数组用法详解
Jan 21 Javascript
悬浮广告方法日常收集整理
Mar 18 Javascript
关于动态执行代码(js的Eval)实例详解
Aug 15 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
May 28 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
Dec 20 Javascript
vue 实现的树形菜的实例代码
Mar 19 Javascript
原生JS实现前端本地文件上传
Sep 08 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
Jul 19 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 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
PHP中的日期及时间
2006/11/23 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
jquery实现的图片点击滚动效果
2014/04/29 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
JS 调用微信扫一扫功能
2016/12/22 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
小程序页面动态配置实现方法
2019/02/05 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
Python方法的延迟加载的示例代码
2017/12/18 Python
python写入数据到csv或xlsx文件的3种方法
2019/08/23 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
python遍历路径破解表单的示例
2020/11/21 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
全方位了解CSS3的Regions扩展
2015/08/07 HTML / CSS
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
业绩考核岗位职责
2014/02/01 职场文书
护士毕业生自荐信
2014/02/07 职场文书
工作态度检讨书
2014/02/11 职场文书
物业经理自我鉴定
2014/03/03 职场文书
陈胜吴广起义口号
2014/06/20 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
教师教育教学随笔
2015/08/15 职场文书