2017百度前端编程题“求帽子”哪里错了,本地一直编译通过
我的实现思路是:先去掉数组中重复的数字,然后进行排序,最后选出第三个数。
Array.prototype.distinct= function(){
var arr=[]; //定义一个临时数组
for(var i = 0; i < this.length; i++){ //循环遍历当前数组
//判断当前数组下标为i的元素是否已经保存到临时数组
//如果已保存,则跳过,否则将此元素保存到临时数组中
if(arr.indexOf(this[i]) == -1){
arr.push(this[i]);
}
}
return arr;
};
function getPrice(num,arr){
if(num >= 3 && num <=50 && arr.length
>=2){
var newArr = arr.distinct().sort();
if(newArr.length >= 3){
return newArr[2];
}else{
return -1;
}
}else{
return -1;
}
}
var n = 10;
var arr = [10,10,10,10,20,20,30,30,40,40];
console.log(getPrice(n,arr));