原生js获取数组中的最大值max和最小值min的方法总结

更新日期: 2017-12-04阅读量: 2897标签: Array

原生jJavaScript获取数组中的最大值和最小值:方法一:传统循环遍历,方法二:利用Math.max和Math.min,方式三.利用sort排序...


方法一:传统循环遍历

//最小值
Array.prototype.min = function() {
	var min = this[0];
	var len = this.length;
	for(var i = 1; i < len; i++) {
		if(this[i] < min) {
			min = this[i];
		}
	}
	return min;
}
//最大值
Array.prototype.max = function() {
	var max = this[0];
	var len = this.length;
	for(var i = 1; i < len; i++) {
		if(this[i] > max) {
			max = this[i];
		}
	}
	return max;
}
var numbers = [10, 500 , 0 , -15 ];
console.log(numbers.max());//500
console.log(numbers.min());//-15


方法二:利用Math.max和Math.min

1.利用apply-一维数组

var numbers = [10, 500 , 0 , -15 ];
console.log(Math.min.apply(null, numbers));//-15
console.log(Math.max.apply(null, numbers));//200

2.apply集成到Array.min和Array.max:

Array.max = function(array){ 
    return Math.max.apply(Math,array );
};
Array.min = function( array ){ 
    return Math.min.apply(Math,array );
};

3.apply使用链式 

Array.prototype.max = function(){ 
return Math.max.apply({},this) 
} 
Array.prototype.min = function(){ 
return Math.min.apply({},this) 
} 
[1,2,3].max()// => 3 
[1,2,3].min()// => 1

4.使用ES6

var numbers = [10, 500 , 0 , -15 ];
console.log(Math.min(...numbers));//-15
console.log(Math.max(...numbers));//200

5.利用eval

var numbers = [10, 500 , 0 , -15 ];
var max = eval("Math.max(" + numbers + ")");
console.log(max)//500
var min = eval("Math.min(" + numbers + ")");
console.log(min)//-15

6.利用apply-多维数组

var numbers=[10,500,[-15,0],[1,2,3]];
var n=numbers.join(",").split(",");//转化为一维数组
console.log(Math.max.apply(null,n));//最大值500
console.log(Math.min.apply(null,n));//最小值-15


方式三.利用sort排序:

var numbers = [10, 500 , 0 , -15 ];
numbers.sort(function(a,b){return a - b;});
console.log(numbers[numbers.length - 1]);//最大值500
console.log(numbers[0]);//最小值-15

我们先对数组进行一次从大到小的排序,那么最大值就是最后一个值,最小值就是第一个了。


总结:

除了上面方法外,还有其他的实现方式!请留言哦~~~



站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: https://www.fly63.com/article/detial/213

Array.from() 五个超好用的用途

任何一种编程语言都具有超出基本用法的功能,它得益于成功的设计和试图去解决广泛问题。JavaScript 中有一个这样的函数: Array.from:允许在 JavaScript 集合(如: 数组、类数组对象、或者是字符串

原生js数组扁平化方法总汇,JavaScript多维数组如何实现扁平化处理返回一维数组

js数组扁平化就是指将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。 JavaScript方法包括 递归、es5 Array 的reduce函数用法、toString方法、ES6扩展运算符...

在 Array.filter 中正确使用 Async

在第一篇文章中,我们介绍了 async / await 如何帮助处理异步事件,但在异步处理集合时却无济于事。在本文中,我们将研究该filter函数,它可能是支持异步函数的最直观的方法。

JS实现遍历不规则多维数组的方法

这篇文章主要介绍了JS实现遍历不规则多维数组的方法,涉及javascript数组递归遍历相关实现与使用技巧,需要的朋友可以参考下

js 数组方法,包含ES6方法

JavaScript常用数组操作方法:concat() 方法用于连接两个或多个数组。join() 方法用于把数组中的所有元素放入一个字符串。push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。pop() 方法用于删除并返回数组的最后一个元素。

认识array method的reduce

reduce属于javascript「synchronize同步」的array method,他就是把一整个array的所有内容,有顺序性的挤压squeeze最后变成一个值

js中数组创建的多种方式,数组中常用方法总汇

javascript创建数组的几种方式:1、字面量形式直接创建数组,2、Array构造函数创建数组。js数组常用的方法有哪些:join(),push()和pop(),shift() 和 unshift(),sort(),reverse(),concat()等

es6之Array.of()和Array.from()

es6新增了二种方法:Array.of()和Array.from(),它们有什么用途呢?在平时的开发中能给我们带来什么方便呢?本篇将从一个创建数组的小问题开始,逐步揭开它们的面纱。

js实现交换数组元素位置的方法总汇

交换数组元素位置是开发项目中经常用到的场景,总结下用过的几种方式:第三方变量、splice方法、解构赋值

Js Array对象常用方法

不改变原数组:concat();join();slice();toString(),改变原数组:pop();push();reverse();shift();unshift();sort();splice(),array.concat(array)连接两个或多个数组,返回被连接数组的一个副本

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!