如何在多维数组中获得最大值

时间:2016-06-15 10:37:11

标签: javascript

function largestOfFour(arr) {
var max = 0;
var newArr = [];

for (var i = 0; i < arr.length; i++) {
    for (var j = i; j < arr.length; j++) {
        max = Math.max(max, arr[i][j]);
    }
    newArr.push(max);
 }
 return newArr;
}

这是我的代码。它对我有用,但我想知道有没有其他方法可以做到这一点?

3 个答案:

答案 0 :(得分:3)

试试这个:

function largestOfFour(arr) {
  return arr.map(function(item){
    return Math.max.apply(null, item);
  });
}

答案 1 :(得分:0)

您可以尝试这样的事情:

创意,Math.max获取n个参数并为您提供最大值。使用.apply可以将参数作为数组传递。将两者结合使用可以得到数组中的最大值。

应用

&#13;
&#13;
var data = [
  [1, 2, 3, 4],
  [10, 20, 200, 31],
  [21, 3, 444, 133],
  [0, 0, 90, 1]
];
var max_arr = data.map(function(a) {
  return Math.max.apply(this, a);
});
console.log(max_arr)
&#13;
&#13;
&#13;

排序+切片+弹出

&#13;
&#13;
var data = [
  [1, 2, 3, 4],
  [10, 20, 200, 31],
  [21, 3, 444, 133],
  [0, 0, 90, 1]
];

var max_arr = data.map(function(a) {
  return a.sort().slice(-1).pop()
});

console.log(max_arr)
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以将the spread operator用作:

var data = [
  [1, 2, 3, 4],
  [10, 20, 200, 31],
  [21, 3, 444, 133],
  [0, 0, 90, 1]
];
const max = Math.max(...data.map(inner => Math.max(...inner)));
console.log(max);