js面试题之求数组最值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js面试题之求数组最值相关的知识,希望对你有一定的参考价值。
今天继续分享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面试题之求数组最值的主要内容,如果未能解决你的问题,请参考以下文章