标签:mat 利用 function 解决 dea min 最大值 array max
arr.max()
和arr.min()
这样的方法。那么是不是可以通过别的方式实现类似这样的方法呢?那么今天我们就来整理取出数组中最大值和最小值的一些方法。var arr=[2,7,3,10,22,11]; Math.max(...arr); //44 Math.min(...arr); //2
Array.prototype.max=function(){
let max=this[0];
this.forEach(function(item,index){
if(item>max){
max=item;
}
});
return max;
}
var arr = [1,45,23,3,6,2,7,234,56,222,34444,9]; console.time("费时"); console.log(arr.max()); // 34444 console.timeEnd("费时"); // 费时:0.376ms
// ================================================ //
Array.prototype.max=function(){ let max=this[0]; this.map(function(item,index){ if(item>max){ max=item; } }); return max; } var arr = [1,45,23,3,6,2,7,234,56,222,34444,9]; console.time("费时"); console.log(arr.max()); // 34444 console.timeEnd("费时"); // 费时: 0.402ms
// ================================================= //
Array.prototype.max=function(){ let max=this[0]; for(var i=1;i<this.length;i++){ if(this[i]>max){ max=this[i]; } } return max; } var arr = [1,45,23,3,6,2,7,234,56,222,34444,9]; console.time("费时"); console.log(arr.max()); // 34444 console.timeEnd("费时"); // 费时: 0.522ms
var arr = [1,45,23,3,6,2,7,234,56,‘2345‘,5,‘a‘,1000]; arr.max(); // "a" [‘a‘,1000,‘c‘].max(); // "c" [1000,‘a‘].max(); // 1000
"A".charCodeAt(); // 65 "a".charCodeAt(); // 97
Array.prototype.max=function(){ return arr.reduce(function(prev,next){ return prev>next?prev:next; }); } var arr = [1,45,23,3,6,2,7,234,56,222,34444,9]; console.time("费时"); console.log(arr.max()); // 34444 console.timeEnd("费时"); // 费时: 0.389ms
求数组最小值的就不再多说了,同理易得~
总结
上面求数组的最值最简单的还是法一,剩下的都是遍历数组,对于数组的遍历也要选择好方法,不同的遍历方法性能不同,其中 Array.prototype.map虽然使用起来优雅,但是实际性能并不会比forEach好,具体的还是示情况而定吧
标签:mat 利用 function 解决 dea min 最大值 array max
原文地址:http://www.cnblogs.com/kasmine/p/6417838.html