在3维数组中查找最大值及其索引

时间:2019-09-04 18:04:13

标签: javascript mapreduce

我想在n维数组中找到最大值及其 outer 索引,例如:

myArray = [[0,1,2],[3,4,5],[6,7,8]]

到目前为止,我想到了这样的事情:

const highest = myArray.reduce((r, a) => a.map((b, i) => (r[i] > b)), []);

此示例中的所需输出为:

[8, 2]

2 个答案:

答案 0 :(得分:2)

您可以使用reduce,在reduce累加器中将第一个元素的值用作默认值,如果当前值大于累加器,则进行更新,从innerLoop中更新当前值,并从外循环中进行索引

pyenv

答案 1 :(得分:2)

您可以使用reduce方法并为每个数组获取max值,并检查该值是否大于累加器中的第一个元素。

const myArray = [[0,1,2],[3,4,5],[6,7,8]]

const highest = myArray.reduce((r, e, i) => {
  const max = Math.max(...e);
  return (!r.length || max > r[0]) ? [max, e.indexOf(max), i] : r
}, [])

console.log(highest)

/*
    8 - max number value
    2 - index of max value in the sub-array
    2 - index of the sub-array where the max value is
*/