js 获取数组的最大值与最小值

let arr = [1, 2, 5, 8, 10, 100, -1]

1. 使用Math的静态方法max/min

Math.max()函数返回给定的一组数中的最大值。
它的语法:Math.max(value1[, value2, ...])
使用此方法,需要注意,如果没有参数的话,则返回-Infinity。如果有任一参数无法被转换成数值,则返回NaN

1.1 结合ES6的扩展运算符...使用

扩展运算符,可以将数组形式转换为逗号参数的形式。

Math.max(...arr) 

1.2 结合apply/call方法来使用

利用apply()方法的第一个参数可以改变this的指向,第二个参数是数组的形式,来完成这一需求。

Math.max.apply(null, arr) 

既然apply()方法可以使用,那么我们也可以使用call()方法,并配合扩展运算符使用。

Math.max.call(null, ...arr) 

 

1.3 结合reduce来使用

reduce()方法接收一个函数作为累加器,数组中的每一个值(从左到右)开始缩减,最终计算为一个值。
语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
在这里,这个累加器函数就是getMax(),比较两个数,返回其中的最大值,通过这样的缩减,最后返回整个数组的最大值。

function getMax(prev, next) {
    return Math.max(prev, next)
}
arr.reduce(getMax)

 

2. 排序获取

2.1 只比较找出最大值

假定数组中的第一个元素值最大max,循环数组,将max与其他元素做比较,大的值赋给max。循环结束之后,max的值即为最大值。

let max = arr[0]
arr.forEach(item => max = item > max ? item : max)
console.log(max) // 100

 

2.2 将整个数组都排序,获取最大值

利用array.sort()方法,指定排序函数,来排序数组。当然,你也可以使用其他排序方式,来排序数组。

let AS = arr.sort((a, b) => a - b) 
AS[arr.length-1]  // 获取最大值:100
AS[0] // 获取最小值: -1

 浏览器中运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/196489.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

走近“中国深度-深海探索主题展”,带你探索深海远洋

深海,自古以来给予了人类无限的遐想,随着时代的进步和科学的发展,海洋的神秘面纱被一点点揭开,呈现在我们面前的是一个资源宝库,“可上九天揽月,可下五洋捉鳖”已经成为现实,21世纪是海洋的世纪…

1和0的故事-MISC-bugku-解题步骤

——CTF解题专栏—— 题目信息: 题目:1和0的故事 作者:Eas0a 提示:无 解题附件: 解题思路: 哦?1和0的故事?(奸笑.jpg),打开看看啊。 emmm...j…

广州华锐互动:VR虚拟现实内容创作工具带来全新的应用场景

随着科技的不断发展,低代码编辑工具已经成为了一种越来越受欢迎的开发方式。它可以帮助开发人员快速构建应用程序,降低开发成本,提高开发效率,而VR虚拟现实内容创作工具带来了全新的应用场景。 VR虚拟现实内容创作工具是广州华锐互…

AntDB数据库与东方通TongWeb完成兼容互认,共筑数字化底座核心能力

近日,湖南亚信安慧科技有限公司(简称:亚信安慧)与北京东方通科技股份有限公司(简称:东方通)完成AntDB数据库与东方通应用服务器TongWeb V7.0的兼容互认。经测试,AntDB数据库能与东方…

工业产品3d交互展示数字云展厅更绿色环保

随着数字技术的飞速发展,3D全景汽车云展厅平台应运而生,为现代展览带来了前所未有的创新与变革。该平台以其独特的优点,为观众、艺术家和展商带来了全新的展览体验,开启了未来展览的新篇章。 首先,3D全景汽车云展厅平台…

俄罗斯山东同乡会会长赵卫星一行莅临百华鞋业考察交流

11月25日,俄罗斯山东同乡会会长赵卫星等专家与市侨联副主席李咏梅,县商务局局长尹纪付、县侨联主席刘志峰、县人才集团总经理刘杰等一行莅临百华鞋业考察调研。百华鞋业总经理郭兴梅全程陪同。 百华鞋业总经理郭兴梅对赵卫星会长一行领导的到来表示热烈…

Python Xorbits库:实现无限可能的编程旅程

概要 Python Xorbits是一个强大而多功能的开源Python库,为开发者提供了实现创新和复杂计算的能力。它提供了各种功能和工具,帮助开发者在编程旅程中探索无限可能。本文将详细介绍Python Xorbits的用途和使用教程,帮助读者了解和掌握这个令人…

图像异常检测研究现状综述

论文标题:图像异常检测研究现状综述 作者:吕承侃 1, 2 沈 飞 1, 2, 3 张正涛 1, 2, 3 张 峰 1, 2, 3 发表日期:2022年6月 阅读日期 :2023年11月28 研究背景: 图像异常检测是计算机视觉领域的一个热门研究课题, 其目…

JavaScript 的初步学习上篇

JavaScript 的介绍 JavaScript 之父 布兰登 . 艾奇 (Brendan Eich) ,1995 年, 用 10 天时间完成 JavaScript 的设计. JavaScript 和 Java 的关系 两者之间就像老婆和老婆饼的关系,即毫无关系, JavaScript 最初的名字叫LiveScript,为了蹭 Java 热度,才改名为 JavaScript.JavaScr…

云计算——ACA学习 阿里云云计算服务概述

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号:网络豆云计算学堂 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页​​​​​ 目录 写在前面 前期回顾 本期介绍 前言了解 一…

Spring Boot实现热部署

Spring Boot提供了一个名为spring-boot-devtools的开发工具,它可以实现热部署功能。通过使用spring-boot-devtools,可以在修改了resources目录下的内容后,自动重新加载应用程序,而无需手动重启。 以下是使用spring-boot-devtools…

AWVS 使用方法归纳

1.首先确认扫描的网站,以本地的dvwa为例 2.在awvs中添加目标 输入的地址可以是域名也可以是ip,只要本机可以在浏览器访问的域名或ip即可 添加地址及描述之后,点击保存,就会展现出目标设置选项 business criticality译为业务关键…

匿名内部类(内部类) - Java

匿名内部类 1、理解2、语法3、使用(1)基于接口的内部类(2)基于类的内部类(3)基于抽象类的匿名内部类 4、细节&注意事项5、最佳应用场景(1)当作实参直接传递,简洁高效…

Coremail出席2023信息技术应用创新论坛

11月25日,2023信息技术应用创新论坛在常州开幕。江苏省工业和信息化厅副厅长池宇、中国电子工业标准化技术协会理事长胡燕、常州市常务副市长李林等领导出席论坛并致辞。中国工程院院士郑纬民出席并作主题报告。来自产学研用金等各界的千余名代表参加本次论坛。作为…

【仿写C++中的move函数和forward函数】

仿写实现move函数 一、值的类型 1.左值 描述:能够取地址的值成为左值 int a 10; const int b 15; int *pa &a; const int *pb &b;2.纯右值 描述:赤裸裸的字面值 eg(false , 3 , 12.23等) int a 13; int *p &a; //取a的地址 int …

Redis缓存设计典型问题

目录 缓存穿透 缓存失效(击穿) 缓存雪崩 热点缓存key重建优化 缓存与数据库双写不一致 缓存穿透 缓存穿透是指查询一个根本不存在的数据, 缓存层和存储层都不会命中, 通常出于容错的考虑, 如果从存储层查不到数据…

kubenetes--kube-proxy实现负载均衡

一、Linux网络收包 要了解kube-proxy如何实现负载均衡,要先了解Linux网络收包机制,kube-proxy利用Linux的内核实现的负载均衡。 在TCP/IP网络分层模型里,整个协议栈被分成了物理层、链路层、网络层,传输层和应用层。物理层对应的…

ESP Multi-Room Music 方案:支持音频实时同步播放 实现音乐互联共享

项目背景 随着无线通信技术的发展,针对不同音频应用领域的无线音频产品正不断涌现。近日,乐鑫科技推出了基于 Wi-Fi 的多扬声器互联共享音乐通信协议——ESP Multi-Room Music 方案。该方案使用乐鑫自研的基于 Wi-Fi 局域网的音频同步播放技术&#xff…

基于SSM框架的合同服务管理系统设计与实现

基于SSM框架的合同服务管理系统的设计与实现 摘要:当今社会,各行各业都离不开计算机软件的推广,销售,运营各方面,有些中小型企业没有技术与能力开发和维护一款软件来运营,这时催生很多软件外包公司的产生。…

【Electron】上下键切换消息

需求: 如图,需要监听上下键切换消息 Electron 注册 全局快捷键【globalShortcut】监听 在focus注册 在blur 注销 如苹果系统在使用某个软件(focus)时 右上角会有应用标题 Electron 代码: win.on(focus, ()>{globalShortcut.register(U…