JavaScript中Math.max与Math.max.apply的区别及实战用法

作者:闭包旅人

时间:2026-10-23

浏览:326

本文详细解析JavaScript中Math.max函数与Math.max.apply方法的区别。Math.max直接接收参数,而apply可将数组展开为参数列表,从而获取数组最大值。文章还通过自动生成自增编号的实战案例,展示Math.max.apply在JSON数组处理中的应用,帮助开发者掌握这一常用技巧。

文章目录

在近期开发的一个小案例中,我遇到了Math.max.apply这种用法。由于之前接触较少,觉得这个技巧很有趣,因此记录下来供参考。

Math.max基础用法

1. Math.max基础用法

语法格式为:Math.max(n1,n2,n3,...,nX)。该方法的作用是返回指定参数中数值最大的那个值。


var a = Math.max(1,2,3,4);
console.log(a); //4

然而,如果最大值数据存储在数组中,直接调用Math.max无法达到预期效果。此时,就需要借助apply方法来解决这个问题。

Math.max.apply详解

2. Math.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

Math.max.apply拓展案例

2.1 Math.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的区别及用法的介绍就到此结束。更多相关内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章