在For循环中使用Math.max()遇到问题

时间:2019-10-22 00:43:37

标签: javascript

我想在将[0,1,2,3]for循环的每个数组中获得最大数量。

我不知道该怎么做才能获得所需的输出。

function largestOfFour(arr) {
    for (let i = 0; i < arr.length; i++){
     console.log(Math.max(...arr[i])) \\returns => 5, 27, 39, 1001
    }
  }

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

console.log(Math.max(...arr[i]))返回5, 27, 39, 1001。当我删除console.log并在此行使用return时,在许多不同的方法中,迭代都没有完成。循环停止并仅返回arr[0]处的最大数字,而不是完全循环。

所需的输出是获得每个数组的最大数量= 5, 27, 39, 1001

2 个答案:

答案 0 :(得分:2)

您不能从一个函数中多次返回

如果您的代码在for循环的主体中返回,则它将在第一次迭代中从该函数返回

使用数组映射功能

function largestOfFour(arr) {
    return arr.map(a => Math.max(...a))
  }

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

答案 1 :(得分:1)

function largestOfFour(arr) {
  let result = [];
  for (let i = 0; i < arr.length; i++){
        result.push(Math.max(...arr[i]));
  }
  return result;
}

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