求数组中的最大数
- 常规做法
var arr=[11,222,333,44,55];
- 方案一
通过apply方法调用内置对象Math.max()方法
function getMax(max){
return Math.max.apply(null,arr);
}
- 方案二
假设索引为0的元素为最大值,然后循环用每个元素和最大值比较,最终取得最大值
function getMax(arr){
if(arr.length<=1){
return arr[0];
}
var max=arr[0];
for(var i=0;i<arr.length;i++){
if(arr[i]>max){
max=arr[i];
}
}
return max;
}
- 方案三
先对数组进行升序排序,然后直接取出最后一个元素,即为最大值
function getMax(){
if(arr.length<=1){
return arr[0];
}
//升序排列数组
arr.sort(function(a,b){
return a-b;
});
//取出最后一个元素,即为最大值
return arr[arr.length-1];
}
- 方案四
es6扩展运算符
function getMax(arr){
return Math.max(...arr)
}
求数组中的最小数
- 常规做法
var arr=[11,222,333,44,55];
- 方案一
通过apply方法调用内置对象Math.min()方法
function getMin(arr){
return Math.min.apply(null,arr);
}
- 方案二
假设索引为0的元素为最小值,然后循环用每个元素和最小值比较,最终取得最小值
function getMin(arr){
if(arr.length<=1){
return arr[0];
}
var min=arr[0];
for(var i=0;i<arr.length;i++){
if(arr[i]<min){
min=arr[i];
}
}
return min;
}
- 方案三
先对数组进行升序排序,然后直接取出最后一个元素,即为最小值
function getMin(){
if(arr.length<=1){
return arr[0];
}
//升序排列数组
arr.sort(function(a,b){
return b-a;
});
//取出最后一个元素,即为最大值
return arr[arr.length-1];
}
- 方案四
es6扩展运算符
function getMin(arr){
return Math.min(...arr)
}
网友评论