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.mzph.cn/news/185864.shtml

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

相关文章

“消费增值:让每一笔消费创造更多价值“

亲爱的消费者朋友们,你们好!今天,我要向你们揭示一种全新的消费理念——消费增值,让你的每一笔消费都变得更有价值! 在传统的消费观念中,我们仅仅用金钱来购买物品或享受服务,之后这些物品和服…

无mac电脑生成uniapp云打包私钥证书的攻略

uniapp顾名思义是一个跨平台的开发工具,大部分uniapp的开发者,其实并没有mac电脑来开发,但是生成ios的证书,官网的教程却是需要mac电脑的,那么有没有办法无需mac电脑即可生成uniapp云打包的私钥证书呢? 下…

java技能树

java技能树 java概览 编辑java源代码 ab,计算ab的和,输入包含多组测试数据,每一行包含两个整数 a 和b;输出为和 import java.util.Scanner; public class Main{public static void main (String []args){Scanner scanner new Scanner(Sy…

程序员养生之道

程序员养生之道——如何保持健康的生活方式 摘要: 随着互联网行业的快速发展,越来越多的人选择从事程序员这个职业。然而,长时间的工作和高强度的压力容易导致程序员出现亚健康状况,如头发稀疏、视力下降、肥胖等问题。因此&#…

从谷歌搜索结果出现 AI 生成的图片谈起:AI的利与弊

随着人工智能(AI)的不断发展,其应用领域也越来越广泛。谷歌搜索是现代人日常生活中的一个常用工具,经常用于获取各种信息。最近,谷歌搜索结果中甚至出现了由AI生成的图片,这引发了人们对AI技术的讨论。 首…

轧钢厂数字化转型 离不开这类几何尺寸测量仪的使用

从“钢铁是怎样炼成的”到“智慧钢铁如何炼成”,传统钢铁冶炼正在完成数智赋能的“华丽转身”。而要想完成数字化转型,就离不开产线的升级,智能化数字化的产线更是离不开重要的品质检测仪,而在一些规则长材的检测中,更…

昨日作业分析

自己封装response response.py from django.shortcuts import HttpResponse import jsonclass MyResponse(HttpResponse):def __init__(self,data):res json.dumps(data,ensure_asciiFalse)return super().__init__(res) views.py from django.shortcuts import render# C…

单片机开发方式

一、不借助芯片厂家的函数库 在进行单片机开发时,如果选择不使用SPL、HAL等开发库,可以采用以下替代方案: 寄存器级编程:使用寄存器级编程,直接操作硬件寄存器来配置和控制外设。每个外设都有一组寄存器,用…

【09】Python流程控制

【09】Python流程控制 文章目录 1.条件语句1.1 `if`语句1.2 `if-else`语句1.3 `if-elif-else`语句1.4 `pass`关键字2.函数补充2.1 `input()`函数2.2 `range()`函数3.循环语句3.1 `for`循环3.2 `while`循环3.3`break`和`continue`语句3.3.1 `break`3.3.2`continue`4. 列表的

[UGUI]Unity背包系统制作详细步骤

二、背包制作 1.创建空物体,然后创建UI-Image 制作背包整个背包所在的父UI的背景图 选中BG,找到他的锚点设置,按住Alt键,点击右下角的适配,让锚点和内容都匹配画布 PS:不按Alt键是设置一个元素的锚点位…

leetcode算法之链表

目录 1.两数相加2.两两交换链表中的节点3.重排链表4.合并K个升序链表5.K个一组翻转链表 1.两数相加 两数相加 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(…

java mail集成james判断邮件是否发送成功

项目场景: java mail集成james邮件服务器,发送邮件时需要判断邮件是否发送成功。我们会发现JavaMail给用户发送邮件,但是调用Transport类的sendMessage方法发送的邮件是没有返回值的,所以判断不了。 但是我们可以用另一个解决方案…

TDI网络过滤驱动应用(一)

文章目录 TDI网络过滤驱动应用1. 技术概览2. 数据包的抓取3. 应用实例3.1 TrafficShaper(限流)3.2 DnsRedirector(DNS重定向)3.3 TcpRedirector(TCP重定向) 4. 总结与参考 TDI网络过滤驱动应用 在前面的文章中,我们分析了TDI网络过滤驱动的基本开发框架以及TDI网络…

C/C++ 实现FTP文件上传下载

FTP(文件传输协议)是一种用于在网络上传输文件的标准协议。它属于因特网标准化的协议族之一,为文件的上传、下载和文件管理提供了一种标准化的方法,在Windows系统中操作FTP上传下载可以使用WinINet库,WinINet&#xff…

微服务--07--Seata 分布式事务

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 分布式事务1.认识Seata2.部署TC服务2.1.准备数据库表2.2.准备配置文件2.3.Docker部署 3.微服务集成Seata3.1.引入依赖3.2.改造配置3.3.添加数据库表3.4.测试 分布式…

什么是网络安全 ?

网络安全已成为我们生活的数字时代最重要的话题之一。随着连接设备数量的增加、互联网的普及和在线数据的指数级增长,网络攻击的风险呈指数级增长。 但网络安全是什么意思? 简而言之,网络安全是一组旨在保护网络、设备和数据免受网络攻击、…

Zabbix“专家坐诊”第213期问答汇总

问题一 Q:Zabbix报错:Zabbix server is not running :the information displayed may not be current,是什么问题呢? A: 1、数据库软件问题导致导入的zabbix数据库不完整2、zabbix Server配置问题3、zabbix-server没…

大数据基础设施搭建 - Maxwell

文章目录 一、上传压缩包二、解压压缩包三、启用MySQL Binlog3.1 修改MySQL配置文件3.2 重启MySQL服务3.3 测试 四、创建Maxwell所需数据库和用户4.1 创建数据库4.2 调整MySQL数据库密码级别4.3 创建Maxwell用户并赋予其必要权限4.4 测试 五、修改配置文件5.1 修改Maxwell配置文…

【【FPGA的 MicroBlaze 的 介绍与使用 】】

FPGA的 MicroBlaze 的 介绍与使用 可编程片上系统(SOPC)的设计 在进行系统设计时,倘若系统非常复杂,采用传统 FPGA 单独用 Verilog/VHDL 语言进行开发的方式,工作量无疑是巨大的,这时调用 MicroBlaze 软核…

laravel 重写批量添加,自动维护时间戳

laravel 自带的批量添加是不会自动维护时间戳的&#xff0c;意思是说&#xff0c;使用laravel的批量添加&#xff0c;时间戳字段不会插入&#xff0c;也不会在更新的时候进行更新。 使用继承或者trait来解决这个问题&#xff0c;在这里感谢Mr.wen <?php namespace App\Mo…