返回顶部
首页 > 资讯 > 精选 >javascript如何实现数组最大值和最小值
  • 349
分享到

javascript如何实现数组最大值和最小值

2023-06-15 06:06:28 349人浏览 八月长安
摘要

小编给大家分享一下javascript如何实现数组最大值和最小值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!给定一个数组[1,8,5,4,3,9,2],编写一个

小编给大家分享一下javascript如何实现数组最大值和最小值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

给定一个数组[1,8,5,4,3,9,2],编写一个算法,得到数组的最大值 9,和最小值 1。

1、通过prototype属性扩展min()函数和max()函数

算法1的思路是在自定义min()和max()函数中,通过循环由第一个值依次与后面的值作比较,动态更新最大值和最小值,从而找到结果。

// 最小值        Array.prototype.min = function () {            let min = this[0];            let len = this.length;            for (let i = 1; i < len; i++) {                if (this[i] < min) min = this[i]            }            return min        }        // 最大值        Array.prototype.max = function () {            let max = this[0];            let len = this.length;            for (let i = 1; i < len; i++) {                if (this[i] > max) max = this[i]            }            return max        }        // 结果        console.log(arr.min()); // 1        console.log(arr.max()); // 9

2、借助Math对象的min()函数和max()函数

算法2的主要思路是通过apply()函数改变函数的执行体,将数组作为参数传递给apply()函数。这样数组就可以直接调用Math对象的min()函数和max()函数来获取返回值。

Array.min = function(array) {            return Math.min.apply(Math, array)        }        // 最大值        Array.max = function (array) {            return Math.max.apply(Math, array)        }        // 结果        console.log(Array.min(arr)); // 1        console.log(Array.max(arr)); // 9

3、算法2的优化

在算法2中将min()函数和max()函数作为Array类型的静态函数,但不支持链式调用,我们可以利用对象字面量进行简化。

// 最小值        Array.prototype.min = function() {            return Math.min.apply({}, this)        }        // 最大值        Array.prototype.max = function () {            return Math.max.apply({}, this)        }        // 结果        console.log(arr.min()); // 1        console.log(arr.max()); // 9

与算法2不同的是,在验证时,因为min()函数和max()函数属于实例方法,所以可以直接通过数组调用。
上面的算法代码中apply()函数传入的第一个值为{},实际表示当前执行环境的全局对象。第二个参数this指向需要处理的数组。
由于apply函数的特殊性第一个参数,指定为 null 或 undefined 时会自动替换为指向全局对象,原始值会被包装。所以我们也可以将第一个参数设置为null、undefind。

4、借助Array类型的reduce()函数

算法4的主要思想是reduce()函数不设置initialValue初始值,将数组的第一个元素直接作为回调函数的第一个参数,依次与后面的值进行比较。当需要找最大值时,每轮累加器返回当前比较中大的值;当需要找最小值时,每轮累加器返回当前比较中小的值。

// 最小值        Array.prototype.min = function () {            return this.reduce((pre, cur) => {                return pre < cur ? pre : cur            })        }        // 最大值        Array.prototype.max = function () {            return this.reduce((pre, cur) => {                return pre > cur ? pre : cur            })        }        // 结果        console.log(arr.min()); // 1        console.log(arr.max()); // 9

5、借助Array类型的sort()函数

算法5的主要思想时借助数组的原生sort()函数对数组进行排序,排序完成后首尾元素即是数组的最小、最大元素。
默认的sort()函数在排序时时按照字母顺序排序的,数字会被按照字符串处理。例如数字 18 会被当做"18"处理,数字 6 被当"6"来处理,在排序时是按照字符串的每一位进行比较的,因为"1"比"6"要小,所以"11"排序时要比"6"小。对于数值类型的数组来说,这显然不合理。所以我们需要进行自定义排序。

let sortArr = arr.sort((a, b) => a - b)        // 最小值        sortArr[0]        // 最大值        sortArr[sortArr.length - 1]        // 结果        console.log(sortArr[0]); // 1        console.log(sortArr[sortArr.length - 1]); // 9

6、借助es6的扩展运算符

// 最小值        Math.min(...arr)        // 最大值        Math.max(...arr)        // 结果        console.log(Math.min(...arr)); // 1        console.log(Math.max(...arr)); // 9

以上是“javascript如何实现数组最大值和最小值”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: javascript如何实现数组最大值和最小值

本文链接: https://lsjlt.com/news/278576.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • javascript如何实现数组最大值和最小值
    小编给大家分享一下javascript如何实现数组最大值和最小值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!给定一个数组[1,8,5,4,3,9,2],编写一个...
    99+
    2023-06-15
  • JavaScript如何找出数组的最大值和最小值
    这篇文章将为大家详细讲解有关JavaScript如何找出数组的最大值和最小值,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。找出数组的最大值和最小值可以使用for循环遍历数组的每个值,从而找到最大值或最小值...
    99+
    2023-06-27
  • JavaScript如何从数组中获取最大值和最小值
    小编给大家分享一下JavaScript如何从数组中获取最大值和最小值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!从数组中获取最...
    99+
    2024-04-02
  • javascript实现数组最大值和最小值的6种方法
    给定一个数组[1,8,5,4,3,9,2],编写一个算法,得到数组的最大值 9,和最小值 1。 1、通过prototype属性扩展min()函数和max()函数 算法1的思路是在自...
    99+
    2024-04-02
  • 如何求js数组的最大值和最小值
    这篇文章将为大家详细讲解有关如何求js数组的最大值和最小值,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。给定数组[54,65,43,21,12,34,45,58,97,2...
    99+
    2024-04-02
  • 如何求php数组的最大值和最小值
    这篇文章主要介绍“如何求php数组的最大值和最小值”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何求php数组的最大值和最小值”文章能帮助大家解决问题。两种方法:1、用“max(数组)”语句获取最...
    99+
    2023-06-30
  • php如何求数组最大值和最小值的差值
    本文小编为大家详细介绍“php如何求数组最大值和最小值的差值”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何求数组最大值和最小值的差值”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。求差值的步骤:1、使用...
    99+
    2023-07-02
  • javascript如何求数组最大值
    这篇文章主要介绍javascript如何求数组最大值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! javascript求数组最大值的方法:1、声明一个保...
    99+
    2024-04-02
  • javascript求数组最大最小值的方法
    这篇文章主要介绍“javascript求数组最大最小值的方法”,在日常操作中,相信很多人在javascript求数组最大最小值的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • php怎么求数组最大值和最小值的差值
    求差值的步骤:1、使用max()函数获取数组最大值,语法“max($arr)”;2、使用min()函数获取数组最小值,语法“min($arr)”;3、使用“-”运算符将获取的最大值和最小值相减计算差值即可,语法“最大值 - 最小值”。本教程...
    99+
    2022-07-07
    php数组 php
  • JavaScript如何获取一个数字数组中的最大值或最小值
    这篇文章主要为大家展示了“JavaScript如何获取一个数字数组中的最大值或最小值”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何获取一...
    99+
    2024-04-02
  • php数组如何去掉最大值和最小值后求平均
    这篇文章主要讲解了“php数组如何去掉最大值和最小值后求平均”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php数组如何去掉最大值和最小值后求平均”吧!方法:1、对数组进行升序排序,并用“a...
    99+
    2023-06-30
  • c++求数组最大最小值函数的实现
    目录求数组元素最大最小值函数c++中min和max函数求数组元素最大最小值函数 #include<iostream> #include<algorithm> ...
    99+
    2024-04-02
  • php怎么输出数组的最大值和最小值
    要输出数组的最大值和最小值,可以使用PHP内置的max()和min()函数。示例代码如下:```php$arr = [1, 2, 3...
    99+
    2023-10-10
    php
  • python groupby函数实现分组选取最大值与最小值
    现在需要将course分组,然后选择出每一组里面的最大值和最小值,并保留下来 实现下面数据结果: 直接使用groupby函数,不能直接达到此效果,需要在groupby函数上添加a...
    99+
    2024-04-02
  • JavaScript中二叉树如何实现查找最小值、最大值、给定值算法
    小编给大家分享一下JavaScript中二叉树如何实现查找最小值、最大值、给定值算法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体如下:function Node(data,...
    99+
    2024-04-02
  • Java 如何调用long的最大值和最小值
    Java 调用long的最大值和最小值 今天对Java八种基本数据类型进行总结,当总结到整数类型中的long时,出现了测试long最大值和最小值错误; long取值范围是 -2^63...
    99+
    2024-04-02
  • python如何求列表的最大值和最小值
    可以使用内置的`max()`和`min()`函数来求列表的最大值和最小值。示例如下:```pythonnumbers = [1, 2...
    99+
    2023-09-13
    python
  • c++怎么求数组的最大和最小值
    本篇内容主要讲解“c++怎么求数组的最大和最小值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“c++怎么求数组的最大和最小值”吧!求数组元素最大最小值函数#include<iostream...
    99+
    2023-07-02
  • linux shell如何实现求一个多维数组中的最大和最小值
    这篇文章主要介绍了linux shell如何实现求一个多维数组中的最大和最小值,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。同事发了一道shell题,是求一个多维数组中的最大...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作