有人可以解释此for循环的工作原理吗?

问题描述

函数从数组中返回最大数。我需要帮助来了解if部分:if (arr[i] > maxnumber) {maxnumber = arr[i]}。使用伪代码或解释它是如何工作的?

function max(arr){
    let maxnumber = 0
    for (i = 0; i < arr.length; i++) {
        if (arr[i] > maxnumber){
            maxnumber = arr[i]
        }
    }
    return maxnumber
}

console.log(max([1,2,3,40,5]));

解决方法

function max(array) {
    largest number is equal to 0;
    for (i is equal to 0; i is less than the length of array; increment i by 1 each time) {
        if (the item at the current index is greater than the previous largest number) {
            set the largest number to to the item at the current index;
        }
    }
    return largest number which will be 0 if no larger number is found
}

值得一提的是,如果数组中的所有值均为负,它将返回0;否则,返回0。 这同样适用于负数。

function max(arr){
    let maxNumber = -Infinity
    for (i = 0; i < arr.length; i++) {
        if (arr[i] > maxNumber){
            maxNumber = arr[i]
        }
    }
    return maxNumber
}
,

这部分内容:if (arr[i] > maxNumber) {maxNumber = arr[i]}的工作是检查当前数组成员是否大于当前maxNumber以及是否将maxNumber值更改为当前数组。

简而言之,max(whatEverArray)将始终返回零或数组的最大值。如果返回零,则表示所有数组值均为零或小于零。