Javascript中Math.max和Math.max.apply的区别和用法详解

作者:Mingo-233 时间:2024-04-10 10:55:04 

最近在做一个小案例的时候遇到了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 就能自动生成编号并且是自增的。

来源:https://www.cnblogs.com/mingo233/archive/2020/08/23/13548990.html

标签:Javascript,Math.max,Math.max.apply
0
投稿

猜你喜欢

  • Python装饰器详细介绍

    2022-09-28 17:52:16
  • Python3爬虫RedisDump的安装步骤

    2023-07-17 00:42:15
  • 微信支付--签名错误问题的解决方法

    2023-10-04 19:07:30
  • CSS实例教程:复合型CSS条状图表(下)

    2010-01-23 12:52:00
  • mysql 8.0.15 winx64解压版图文安装教程

    2024-01-16 08:22:32
  • MySQL数据库的触发器的使用

    2024-01-19 07:17:37
  • python爬取豆瓣电影排行榜(requests)的示例代码

    2022-10-16 02:18:46
  • 浅析SQL Server 聚焦索引对非聚集索引的影响

    2024-01-16 19:19:44
  • MYSQL常用命令与实用技巧

    2024-01-22 05:22:25
  • 教你漂亮打印Pandas DataFrames和Series

    2022-11-10 19:08:56
  • 解读ASP.NET 5 & MVC6系列教程(9):日志框架

    2023-06-30 06:10:57
  • (X)HTML中最多余的元素标签

    2008-06-15 15:48:00
  • TensorFlow自定义损失函数来预测商品销售量

    2023-01-08 07:01:51
  • Python算法练习之二分查找算法的实现

    2023-08-27 14:29:29
  • SQL事务用法begin tran,commit tran和rollback tran的用法

    2012-01-05 18:58:51
  • Python程序中使用SQLAlchemy时出现乱码的解决方案

    2022-11-07 23:19:28
  • PHP面向对象程序设计类的定义与用法简单示例

    2023-11-22 17:31:17
  • 不要忽略了颜色的可用性

    2009-03-05 18:19:00
  • Python中dumps与dump及loads与load的区别

    2021-10-01 09:13:20
  • 浅谈Laravel队列实现原理解决问题记录

    2024-06-05 15:39:54
  • asp之家 网络编程 m.aspxhome.com