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

更新日期: 2020-09-01阅读: 1.8k标签: Math

最近在做一个小案例的时候遇到了Math.max.apply这么一个用法,之前很少遇到过感觉挺有趣的,就记录一下。


Math.max

语法: Math.max(n1,n2,n3,...,nX)
返回值:max() 方法可返回指定的参数中带有较大的值的那个数

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

但是如果数据是放在一个数组里面,此时就不能这样调用了。这时就用到apply方法


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

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 就能自动生成编号并且是自增的。

本文作者:Mingo-233
本文链接:https://www.cnblogs.com/mingo233/p/13548990.html 


链接: https://fly63.com/article/detial/9622

JavaScript Math对象中Math.round()四舍五入

s中Math.round()是一个数值实现“四舍五入”的方法,在msdn和w3school文档中是理解为:把一个数字舍入为最接近的整数。在我们实际应用中:math.round(-11.6)的结果为-12这个好理解,但是math.round(-11.5)返回值为什么是-11而不是-12呢?

JS实现使用Math.random()函数生成n到m间的随机数字

Math.random()函数返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1);生成n-m,包含n但不包含m的整数: 第一步算出 m-n的值,假设等于w ,第二步Math.random()*w

Js Math对象 abs() 方法

语法Math.abs(x) // 必需。必须是一个数值。示例,在项目中使用的方法 上传图片;关键代码

Js随机Math.random()

Math.random() 返回 0(包括) 至 1(不包括) 之间的随机数:Math.random() 与 Math.floor() 一起使用用于返回随机整数。正如你从上面的例子看到的,创建一个随机函数用于生成所有随机整数是一个好主意。

Js中Math常用方法整理

JavaScript中的math 对让我们能够对执行一些数学操作。 它具有数学常数和函数的属性和方法。 在今天的文章中将介绍 Math对象的一些有用方法。Math.min()是 JS 数学库中的函数,用于将所有传递的值中的最小值返回给该方法。

为什么不带参数的 Math.max() 返回-Infinity

Math.max() 是 JS 内置的方法,可以从传入的参数中,返回最大的一个。如果Math.max()只使用一个参数,结果是怎么样的?正如预期的那样,一个数字的最大值就是它本身。

深入JS getRandomValue和Math.random方法

提到 Math.random() 的安全风险,有开发人员会说因为 Math.random() 返回的是伪随机数。这个解释似是而非,和伪随机数没有关系, getRandomValue() 方法返回的也是伪随机数。

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!