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

 浏览器中运行结果

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习系列之html

目录 初识html 发展史 优势 W3C 标准 地址 格式 网页基本标签 标题标签 段落标签 换行标签 水平线标签 字体样式 注释和特殊符号 特殊符号 图像、超链接 图像 常见图像格式 格式 超链接 格式 重要属性 href:规定链接指向的页面的 URL target…

拼多多Temu销量大涨,三个月销量冲上热搜,Temu狂飙既要又要合规性证书

电商巨头拼多多野心之大,大到国内市场装不下。于是乎,跨境业务Temu于2022年下半年在美国上线2023年随着销量的不断狂飙,Temu平台对质量也是提出了卖家证明产品质量过关的合规性证书! Temu在 8月的单日GMV达5000万美金&#xff0c…

CSGO搬砖项目靠谱吗?有没有风险?

作为一款fps射击游戏,csgo在近几年可谓是火出圈,作为一款全球竞技游戏,深受玩家喜爱追捧,玩家追求的就是公平公正,各凭本事,像其他游戏可能还会有皮肤等装备属性加成,在csgo里面是不存在的。 纯…

LeetCode 1457. 二叉树中的伪回文路径:深度优先搜索(DFS) + 位运算优化

【LetMeFly】1457.二叉树中的伪回文路径:深度优先搜索(DFS) 位运算优化 力扣题目链接:https://leetcode.cn/problems/pseudo-palindromic-paths-in-a-binary-tree/ 给你一棵二叉树,每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「…

设计师不可错过的免费素材网站,快快收藏!

即时设计资源广场 即时设计资源广场拥有数万件来自优秀设计师的精美设计作品,包括设计规范、页面、插图、图标、产品原型、投资组合等。这些作品通常是由大型工厂团队精心总结的设计规范,对应于完善的设计系统和支持组件库。此外,还涵盖了各…

vue项目多个不同的服务器请求地址管理

vue项目多个不同的服务器请求地址管理 在vue项目开发过程中,获取不同的数据可能会出现需要请求多个不同服务器地址的域名,这个时候需要对不同域名的请求地址进行管理以及跨域的代理。 一、单服务器域名地址的跨域代理和请求配置: 跨域配置: 在vue项目的vue.config.js文件…

玻色量子企业荣誉

2023年 2023.7 玻色量子创始人&COO马寅荣获“优秀共产党员”荣誉称号 2023.4 斩获“双金”!玻色量子在中国移动第七届创客马拉松大赛脱颖而出 2023.1 再创佳绩!玻色量子荣膺2022年德勤中国“朝阳明日之星” 2023.1 玻色量子荣为第二届朝阳区“…

提升企业网络安全的得力助手——EventLog Analyzer网络日志管理

在当今数字化时代,企业的网络安全问题变得尤为重要。为了更好地应对日益增多的威胁和安全漏洞,企业需要一种高效的网络日志管理工具,EventLog Analyzer便是其中一款卓越的解决方案。 EventLog Analyzer EventLog Analyzer是一款综合性的网络…

更高效的图片预览方案

传统的图片预览方式是什么样子的呢? 首先是用户选择一张图片,通过ajax上传到服务器,然后服务器返回一个访问url 然后给img标签的src属性设置这个访问url。 那这就会有一个问题,用户为什么要先网络上传上去再预览呢,我…

大模型的实践应用9-利用LoRA方法在单个GPU上微调FLAN-T5模型的过程讲解与实现

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用9-利用LoRA方法在单个GPU上微调FLAN-T5模型的过程讲解与实现,文本我们将向您展示如何应用大型语言模型的低秩适应(LoRA)在单个GPU上微调FLAN-T5 XXL(110 亿个参数)模型。我们将利用Tran…

大电流和大电压谁对人体伤害大

突然想起以前看的这个, 网上有很多解答了这个问题,答案是大电流比大电压对人体伤害大。 我之所以重新来写些, 是想起一种有趣的比喻, 这个答案不绝对。 先看一个场景, 一群牛和一头老虎对你冲来, 谁对你的…

成为网络安全高手!教你如何做出专业级别的渗透测试

01、信息收集 1、域名、IP、端口 域名信息查询:信息可用于后续渗透 IP信息查询:确认域名对应IP,确认IP是否真实,确认通信是否正常 端口信息查询:NMap扫描,确认开放端口 发现:一共开放两…