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

时间: 2017-12-04阅读: 2287标签: 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.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

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

关闭

认识array method的reduce

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

数组去重_原生js对普通数组去重算法的7种方法总结

JavaScript实现普通数组去重,讲解各种算法的思想和改进方法,已经他们的优缺点...利用数组的reduce方法,使用了filter方法,利用ES6去重,相对来说更为简单

js中reduce的用法,如何使用reduce函数

reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组

arguments转化成Array数组的方法

简单说一下arguments,arguments 就是函数内一个內建对象,它包含函数接收到的所有变量;所以,在实际开发中,我们使用arguments可以很方便的获取到所有的实参,并且也需要对其使用是写数组的方法

Array的 every、some、filter、map的区别,以及和reduce的区别

every、some、filter、map这几个方法有时候总是傻傻分不清,尤其map,总是一下子有点懵逼记不清和其他方法的区别,每次都需要查一下API,他们的相同点都是需要遍历数组中的每一项,重点是他们的区别.

es6中 Array.from()函数的用法

ES6为Array增加了from函数用来将其他对象转换成数组,Array.from可以接受三个参数,我们看定义:Array.from(arrayLike [, mapFn [, thisArg]])。arrayLike:被转换的的对象。 mapFn:map函数。 thisArg:map函数中this指向的对象。

JS中forEach的用法

orEach是ES5中操作数组的一种方法,主要功能是遍历数组,forEach方法中的function回调有三个参数:第一个参数是遍历的数组内容,第二个参数是对应的数组索引,第三个参数是数组本身

for in 和 for of的区别详解

for in 和 for of 相对于大家肯定都不陌生,都是用来遍历属性的没错。for ... in 循环返回的值都是数据结构的 键值名。遍历对象返回的对象的key值,遍历数组返回的数组的下标(key)。for of 循环用来获取一对键值对中的值,而 for in 获取的是 键名

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

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

js 数组方法,包含ES6方法

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

点击更多...

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