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;
}
答案 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]]));