apply+Math.max()函数使用

这次给大家带来apply+Math.max()函数使用,apply+Math.max()函数使用的注意事项有哪些,下面就是实战案例,一起来看一下。

下面给大家介绍js中apply和Math.max()函数的问题,具体内容如下所示:

var arr=[1,3,6,3,7,9,2];console.log(Math.max.apply(null,arr));

登录后复制

一直搞不懂为什么这样可以算出一个数组的最大值?一直想不明白,请js高手指教一下。

答案1

Function.apply()是JS的一个OOP特性,一般用来模拟继承和扩展this的用途,对于上面这段代码,可以这样去理解:

XXX.apply是一个调用函数的方法,其参数为:apply(Function, Args),

Function为要调用的方法,Args是参数列表,当Function为null时,默认为上文,

Math.max.apply(null, arr)

登录后复制

可认为是

apply(Math.max, arr)

登录后复制

然后,arr是一个参数列表,对于max方法,其参数是若干个数,即

Math.max(a, b, c, d, ...)

登录后复制登录后复制

当使用apply时,把所有参数加入到一个数组中,即

arr = [a, b, c, d, ...]

登录后复制

代入到原式,

Math.max.apply(null, [a, b, c, d, ...])

登录后复制

实际上等同于

Math.max(a, b, c, d, ...)

登录后复制登录后复制

在此处,使用apply的优点是在部分JS引擎中提升性能。

答案2

Math.max()方法,支持传递多个参数,比如:Math.max(1,4,2,3,7,5,6)

但是它不支持直接传递一个数组作为参数,比如:Math.max(new Array(1,4,2,3,7,5,6))。

这里,只要我们有方法把数组,一个一个拆分开来,传递到Math.max()方法中,就实现了传递数组的方法。

所有函数都有apply(作用域链,参数)这个方法,这个函数的“参数”,接收一个数组,并且是将数组中的每个值,分开来,传递给调

补充:

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

Javascript中的Math.max方法可以求出给定参数中最大的数。

> Math.max('1','2','3.1','3.2') Math.min(1,0,-1)< -1

登录后复制

但如果是数组,就不能这样调用了。

此时就用到了apply方法:

apply 方法 (Function) (JavaScript)调用函数,并用指定对象替换函数的 this 值,同时用指定数组替换函数的参数。apply([thisObj[,argArray]])thisObj  可选。 要用作 this 对象的对象。argArray

登录后复制

  可选。 要传递到函数的一组参数。
巧妙地使数组也可以调用Math.max和Math.min。

> Math.max.apply(null, ['1','2','3.1','3.2']) Math.min.apply(null, [1,0,-1])< -1

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

怎样传递数组到后台controller

怎样传递数组到后台controller

以上就是apply+Math.max()函数使用的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3184960.html

(0)
上一篇 2025年3月31日 22:03:31
下一篇 2025年3月31日 22:03:45

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 江苏苏州:6小时,涉案十余万的“黄金双盗”落网!,苏州电信诈骗

    “今年我是在监狱里过, 还是可以尽情享受、走上人生巅峰?” 这也许是下面这位「黄金大劫案」主人公 作案时的内心独白 这天晚上 张某(化名)因无力偿还债务 想靠盗窃来获取钱财 他盯准了超市一家金器商铺 期间多次踩点 并网购了作案工具 制定了自…

    用户投稿 2025年5月22日
    2200
  • js和java的区别是什么?

    java是一门面向对象编程语言,不仅吸收了c++语言的各种优点,还摒弃了c++里难以理解的多继承、指针等概念,因此java语言具有功能强大和简单易用两个特征。 js(JavaScript)是一种直译式脚本语言,是一种动态类型、弱类型、基于原…

    2025年5月3日
    000
  • 使用js实现微信唤起支付宝领红包(详细教程)

    最近支付宝的领红包可真是刷爆了各个微信群啊,满群都是支付宝口令,可是这样推广很麻烦,下面我给大家带来了js实现微信/qq直接跳转到支付宝app打开口令领红包功能,需要的朋友参考下 最近支付宝的领红包可真是刷爆了各个微信群啊,满群都是支付宝口…

    2025年5月1日 编程技术
    000
  • JS实现简易版贪吃蛇小游戏

    nbsp;html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>    新建网页     …

    编程技术 2025年4月4日
    200
  • phpstorm怎么用js

    一、PHPStorm调试Javascript 在PHPStorm中创建test.html nbsp;html>        Test page     var test; var test2; console.log(“hello …

    2025年4月2日 编程技术
    200
  • vscode怎么压缩js代码

    vscode压缩js代码的方法: 1、在拓展商店里搜索“minify”,安装,安装成功后点重新加载 2、使用:F1运行文件缩小器Minify压缩js代码。 使用Minify的方法介绍: 缩小您的js,css和html文件以节省传输带宽。直接…

    2025年4月2日
    200
  • 怎么在vscode中调试js代码

    在左侧扩展中搜索debugger for chrome并点击安装 在自己的html工程目录下面点击f5,或者在左侧选择调试按钮 选择下拉按钮,会有一个添加,选择chrome 之后会出现laungh.json的配置文件在自己的项目目录下面 不…

    2025年4月2日 编程技术
    200
  • vscode如何配置js运行环境

    vscode界面很简洁安装完之后所有的功能都一目了然,我们需要安装插件可以点击如图的工具和语言: 安装以下两个插件如图:(你也可以选择其他这里只是示例) 我们要调试一个js,需要创建一个html文档里面添加js方法,简单创建个文件,可以直接…

    2025年4月2日 编程技术
    100
  • vue.js核心最基本的功能是什么

    vue.js核心最基本的功能是一个允许采用简洁的模板语法来声明式地将数据渲染进DOM的系统。vue.js的核心功能使得我们可以很方便地控制切换一个元素是否显示。 本文操作环境:windows10系统、vue 2.5.2、thinkpad t…

    2025年4月1日
    400
  • 怎么用JavaScript在Vue3中实现动画?

    概述 动画的实现其实不仅可以使用css的方式实现,而且还可以使用js的方式实现,二者有啥区别呢?css更加注重动画的展现,性能更好,而js的方式性能稍微差点,但是可以在动画执行的每一个过程中做些额外的操作。也就是说动画执行的开始-执行中-结…

    编程技术 2025年4月1日
    200

发表回复

登录后才能评论