javascript - 使用 JavaScript If...Else 语句查找数组中下一个最大的数字

标签 javascript arrays function if-statement max

您能解释一下下面代码中的“else if”语句如何返回数组中的第二大数字吗?

特别是“else if 语句”中没有 AND 运算符 (&&)。我的意思是例如:

else if (max2 < array[i] && max1 > array[i])

我发现人们在 stackOverflow 上使用这种方法,但他们没有给出任何详细的解释(“为什么它有效”):

var arr1 = [2, 3, 1, 6, 100, 49, 5, 7, 8, 9];

function getSecondMaxNumber(array) {
    var max1 = 0;
    var max2 = 0;
    for (var i = 0; i <= array.length; i++) {
        if (max1 < array[i]) {
            max1 = array[i];
        } else if (max2 < array[i]) {
            max2 = array[i];
        }
    }
    return max2;
}
console.log(getSecondMaxNumber(arr1));

更新

上面的方法是错误的,正如哈桑在下面评论的那样。

我决定使用:

var arr1 = [2, 3, 1, 6, 100, 49, 5, 7, 8, 9];


function getSecondMaxNumber(array) {
    function sortNumbers(a, b) { //Compare numbers.
        return a - b;
    }
    var arrSorted = array.sort(sortNumbers); //Set up sorting.
    return arrSorted[arrSorted.length - 2]; //Choose the second largest number in an array.
}
console.log(getSecondMaxNumber(arr1)); //Show me that number.

最佳答案

您不需要 &&因为if条件已经消除了max1的可能性小于array[i] 。您无法访问else if没有if的条件第一次失败。

旁注,循环条件应该是 <而不是<= .

关于javascript - 使用 JavaScript If...Else 语句查找数组中下一个最大的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47609835/

相关文章:

javascript - jqGrid不显示数据,没有错误

javascript - 在 JS 中哪里添加分号可以防止缩小错误?

javascript - 脚本只运行一次

c - error : conflicting types, 错误:形参2的类型不完整

javascript - 如何使用select2显示为文本框?

java - 当你使用 object... 作为参数时,它叫什么?

Java数组问题

php - 从 array_count_values 中提取信息

mysql - 如何使用 select 的输出作为 MySQL 函数的输入?

php - 类方法或全局函数