1. 程式人生 > >js面試題之求數組最值

js面試題之求數組最值

pre 面試 可能 cti clas return n) ole arr

今天繼續分享js常見的面試題,求數組最大值,最小值,這裏列舉4種常見解法,還有其他方法也可以實現,讀者知道可以私信我,我將把意見列舉到博客中,歡迎提出意見。

第一種,利用數組排序

1 var arr=[3,4,5,1,2,9,8,7];
2 var newArr=arr.sort(function(a,b){
3     return a-b;
4 })
5 var min=newArr[0];
6 var max=newArr[arr.length-1];
7 
8 console.log(min);
9 console.log(max);

第二種,用eval方法(不建議使用,可能造成惡意代碼執行)

1 var arr=[3,4,5,1,2,9,8,7];
2 var min=eval("Math.min("+arr.toString()+")");
3 var max=eval("Math.max("+arr.toString()+")");
4 
5 console.log(min);
6 console.log(max);

第三種,假設法(學過c語言的都知道)

1 var min=arr[0],max=arr[0];
2 
3 for (var i = 0; i < arr.length; i++) {
4     arr[i]>max?max=arr[i]:null;
5 arr[i]<min?min=arr[i]:null; 6 } 7 8 console.log(min); 9 console.log(max);

第四種,巧用apply(老司機解法)

1 var arr=[3,4,5,1,2,9,8,7];
2 
3 var min=Math.min.apply(null,arr);
4 var max=Math.max.apply(null,arr);
5 
6 console.log(min);
7 console.log(max);

js面試題之求數組最值