-4

如何找到数组中第二大的数字

4

4 回答 4

3
function getSecondHighest(arrCheck){
    var first=0,second=0;
    for(var i=0;i<arrCheck.length;i++){
        if(arrCheck[i] > first){
            second = first;
            first = arrCheck[i];
        }
        else if(arrCheck[i]>second && arrCheck[i]<first){
            second = arrCheck[i];
       } 
    }
    return second;
}
于 2012-12-24T06:28:59.320 回答
1

如果您遍历列表一次;你会发现最高的数字。现在再重复一次,您将获得第二高的数字。

于 2012-12-24T06:25:29.497 回答
1
    var big = a[0];
    var secondLargest = null;
    for (var i = 0; i < a.length; i++) {
        if (a[i] > big) {
            secondLargest = big;
            big = a[i];
        } else if (a[i] > secondLargest) {
            secondLargest = a[i];
        }
    }
    return secondLargest;
}
于 2012-12-24T06:36:25.240 回答
0

看到这个:

var array = [267, 306, 108, 50, 909, 200];
var newCopy = [0];
for (i = 0; i < array.length; i++) {
    newCopy[i] = array[i];
}
var largest = Math.max.apply(Math, newCopy);
newCopy.splice(newCopy.indexOf(largest), 1);
largest = Math.max.apply(Math, newCopy);
alert(largest);​
于 2012-12-24T06:35:11.523 回答