javascript无限循环错误多维数组排序

时间:2016-10-21 07:59:06

标签: javascript arrays sorting multidimensional-array infinite-loop

Iam尝试对多维数组进行排序,并将每个子数组的最大数量放在一个带有双循环的数组中但由于某种原因导致无限循环错误:

要排序的数组:

largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

代码:

function largestOfFour(arr) {
    var temp;
    for (var i = 0; i < arr.length; i++) {
        var largestNumber = 0;
        for (var j = 0; i < arr[i].length; j++) {
            if (largestNumber < arr[i][j]) {
                largestNumber = arr[i][j];
            }
        }
        temp[i] = largestNumber;
    }
    return temp;
}

1 个答案:

答案 0 :(得分:1)

您需要进行两项更改,一项是针对正确类型的变量分配结果,另一项是使用正确的变量检查for循环。

function largestOfFour(arr) {
    var temp = []; // necessary
    for (var i = 0; i < arr.length; i++) {
        var largestNumber = 0;
        for (var j = 0; j < arr[i].length; j++) {
            //          ^^ j instead of i 
            if (largestNumber < arr[i][j]) {
                largestNumber = arr[i][j];
            }
        }
        temp[i] = largestNumber;
    }
    return temp;
}

console.log(largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]));