求js数组的最大值和最小值的四种方法
给定数组[54,65,43,21,12,34,45,58,97,24],求其最大值和最小值?
定义数组
var ary = [54,65,43,21,12,34,45,58,97,24];
1、字符串拼接法
利用toString和join把数组转换为字符串,再和Math的max和min方法分别进行拼接,最后执行eval方法
var maxN = eval("Math.max(" + ary.toString() + ")"); var minN = eval("Math.min(" + ary.toString() + ")");
或者
var maxN = eval("Math.max(" + ary.join() + ")"); var minN = eval("Math.min(" + ary.join() + ")");
2、排序法
先把数组从小到大排序,数组第一个即为最小值,最后一个即为最大值
ary.sort(function(a,b){return a-b;}); var minN = ary[0]; var maxN = ary[ary.length-1];
3、假设法
假设数组第一个为最大(或最小值),和后边进行比较,若后边的值比最大值大(或比最小值小),则替换最大值(或最小值)
var maxN = ary[0]; var minN = ary[0]; for(var i=1;i<ary.length;i++){ var cur = ary[i]; cur>maxN ? maxN=cur : null; cur<minN ? minN=cur : null; }
4、Math的max和min方法
使用apply方法使数组可以作为传递的参数
var maxN = Math.max.apply(null,ary); var minN = Math.min.apply(null,ary);
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!
相关推荐
-
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
看了一段时间关于js原型的知识,js的扩展方法是基于原型的,如Array.prototype.XXXX就是给Array扩展XXX方法,然后数组都能使用这个方法了. 在对象数组里面经常有根据属性来进行排序的,升序,降序的,于是自己就想写一个类似于C#里面的orderBy的方法,代码如下: 复制代码 代码如下: Array.prototype.OrderByAsc = function (func) { var m = {}; for (var i = 0; i < this.length; i++
-
JavaScript常用字符串与数组扩展函数小结
String对象的扩展函数: String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,""); } String.prototype.ltrim = function() { return this.replace(/^\s+/g,""); } String.prototype.rtrim = function() { return this.replace(/\s+$/g,&quo
-
js实现prototype扩展的方法(字符串,日期,数组扩展)
本文实例讲述了js实现prototype扩展的方法.分享给大家供大家参考,具体如下: String.prototype.isEmpty = function () { return !(/.?[^/s ]+/.test(this)); } //检测字符串是否为空 // 替换字符 String.prototype.reserve = function(type) { if (type == 'int') return this.replace(/^/d/g, ''); // 替换字符串中除了数字以
-
javascript数组的扩展实现代码集合
Array.prototype.del = function(n) { if (n<0) return this; return this.slice(0,n).concat(this.slice(n+1,this.length)); } // 数组洗牌 Array.prototype.random = function() { var nr=[], me=this, t; while(me.length>0) { nr[nr.lengt
-
javascript Array数组对象的扩展函数代码
今天重点讲下 如何给Array对象扩展 1.直接在Array.prototype 上扩展 2.用自己方法对数组对象进行扩展 直接在Array.prototype上扩展,不能直接对dom对象使用(如:document.getElementsByTagName('div')得到的nodeList); 对有洁癖的同学而言 也破了原始生态环境的 : ) 先来看下 yui操作数组的一些方法,这里我对源码简单剥离并改动了下 复制代码 代码如下: (function(){ var YArray; YArray
-
编写js扩展方法判断一个数组中是否包含某个元素
在C#语法中判断集合是否包含某个元素可以使用Contains方法,但是类似的问题在javascript中要怎么处理呢,js中没有Contains方法. 我们可以利用js的原型扩展来封装一个我们自己的Contains方法. js代码: 复制代码 代码如下: <script type="text/javascript"> $(function () { Array.prototype.contains = function (element) { //利用Array的原型pro
-
JavaScript学习笔记之数组求和方法
推荐阅读:JavaScript学习笔记之数组的增.删.改.查 通过最近学习,越来越感觉JavaScript的强大与魅力之处,仅数组一个知识点就让我这样的初学者折腾了很久.折腾是折腾,但还是很有效果的,这几天的学习到的一些基本知识,就在自己的业务就用到了.顿感自信心爆棚,我也有一天能学会JavaScript. 别的不多说了,咱们今天一起来玩数组的求和,看看有哪些方法可以实现数组的求和. 数组方法 JavaScript中数组有很多种方法,下图能更好的向你阐述JavaScript有多少种方法,作用是啥
-
JS的数组的扩展实例代码
Array.prototype.del = function(n) { if (n<0) return this; return this.slice(0,n).concat(this.slice(n+1,this.length)); } // 数组洗牌 Array.prototype.random = function() { var nr=[], me=this, t; while(me.length>0) { nr[nr.length] = me[t = Math.floor(Math.
-
javascript框架设计读书笔记之数组的扩展与修复
1.indexOf和lastIndexOf方法: 因为IE7在数组对象上使用indexOf会报错,所以需要重写一个兼容性的. 复制代码 代码如下: Array.prototype.lastIndexOf(item,index){ var n = this.length,i = (index==null||index>n-1)?n-1:index; if(i < 0) i = n+i; for(;i>=0;i--) if(this[i] === item) //全等判断,indexOf
-
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
本文实例讲述了JS实现求数组起始项到终止项之和的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS求数组之和</title> </head> <body> <script > Array.prototype.sum= funct
-
分享JS数组求和与求最大值的方法
前言 面试遇到一个问题:JS数组求和函数.我第一想到的就是数组循环.然而我觉得面试官问这个问题一定不是想考这个人人皆知的方法.当时机智的我竟然想到了递归函数不断加和数组的项,然而折腾了好久都没调好方法,事实证明这并不是最优解.最后面试官问我有没有见过reduce(),真木有哇.所以回来查资料,Array.reduce()是ES5新增的新属性,相似的还有Array.reduceRight(). 下文来总结一下数组求和的方法. 最粗暴的方法:循环获取 通过for循环一项项地加和.看代码: Array
-
js数组方法扩展实现数组统计函数
复制代码 代码如下: /*****************************************************CreateBy:joe zhou*Description:数组统计函数****************************************************/$.extend({ max: function (arr) { return cacl(arr, function (item, max) { if
随机推荐
- 强大的Perl正则表达式实例详解
- js实现class样式的修改、添加及删除的方法
- JSP+MySQL实现网站的登录与注册小案例
- 用VBS实现的凯撒密码算法
- js动态调用css属性的小规律及实例说明
- Yii使用Captcha验证码的方法
- 模拟OICQ的实现思路和核心程序(一)
- 在Python的Flask框架中实现全文搜索功能
- Go语言Cookie用法分析
- Js判断参数(String,Array,Object)是否为undefined或者值为空
- Android开发仿QQ空间根据位置弹出PopupWindow显示更多操作效果
- JavaScript html5 canvas绘制时钟效果(二)
- Ubuntu下安装配置Docker的教程详解
- Vue 2.0的数据依赖实现原理代码简析
- Windows Powershell对象=属性+方法
- jQuery选择器特殊字符与属性空格问题
- jQuery动态加载css文件实现方法
- js判断背景图片是否加载成功使用img的width实现
- apache虚拟机配置步骤和修改访问端口的方法(虚拟机端口映射)
- java实现word文件转html文件