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

时间: 2017-12-04阅读: 1092标签: 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

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


总结:

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



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

Array.prototype.slice.call()

MDN中对于Array.prototype.slice.()的介绍中,提到了类数组对象。以下是原文:slice 方法可以用来将一个类数组(Array-like)对象/集合转换成一个新数组。你只需将该方法绑定到这个对象上。 一个函数中的 arguments 就是一个类数组对象的例子。

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

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

es6之Array.from()方法

Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。==只要是部署了Iterator接口==的数据结构,Array.from都能将其转为数组。

Js Array对象常用方法

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

Array.slice 8种不同用法

在深入研究一些更高级的用法之前,让我们看一下slice方法的基础知识。如MDN文档,slice 是数组上的一个方法,它最多有两个参数,从该索引处开始提取原数组中的元素,如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取

Array数组相关方法

push向数组末尾添加元素;unshift向数组开头增加元素;pop删除数组末尾一项;shift删除数组的第一项;join为数组添加指定的分隔符;slice找某一区域内的项,返回成新数组形式

js数组的迭代

js数组的迭代:forEach() 方法对数组的每个元素执行一次提供的函数。map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。

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

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

JS取出两个数组中的不同或相同元素

concat() 方法:用于连接两个或多个数组。Array filter() 方法:创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。indexOf() 方法:可返回某个指定的字符串值在字符串中首次出现的位置。

js中的Array

Array 对象用于在单个的变量中存储多个值。 创建 Array 对象的语法;参数 size 是期望的数组元素个数。返回的数组,length 字段将被设为 size 的值。参数 element ..., elementn 是参数列表。当使用这些参数来调用构造函数 Array() 时

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

广告赞助文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全