如何获取数组中最大值的索引? JavaScript的

时间:2017-01-04 16:22:06

标签: javascript arrays

我需要获取数组连接中最大值的索引。此数组用于将值输出到表中,我需要能够将此表中的单元格设置为最大值为红色。以下是我到目前为止的情况:

pip install pycryptodome

我如何找到连接数组中最大值的索引并将cells []的位置设置为它。我已经尝试使用循环和if语句来查找值,但是我在将该值从循环中取出时遇到了麻烦。

4 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

var largest_number = Math.max.apply(Math, my_array);
var largest_index = my_array.indexOf(largest_number);

答案 1 :(得分:1)

var maxvalue = Math.max.apply(null, connections);
var maxvalueindex = connections.indexOf(maxvalue);

参考文献:http://www.jstips.co/en/calculate-the-max-min-value-from-an-array/

答案 2 :(得分:1)

只需将Math.max应用于数组即可获得最大值。但是如果你想要它的索引,你必须做更多的工作。

最直接的方法是做这样的事情:

connections.indexOf(Math.max.apply(Math, connections))

如果你想提高效率(因为它遍历数组两次),你可以编写自己的缩减:

maxConnIndex = connections.reduce(function(curMax, curVal, curIdx) {
    let [maxVal, maxIdx] = curMax
    if (curVal > maxVal) {
      maxVal = curVal
      maxIdx = curIdx
    }
    return [maxVal, maxIdx]
  }, [connections[0],0])[1];

答案 3 :(得分:0)

简单易用,高效的代码:

function maxIndex(array) {
  var idx, max=-Infinity;
  for (var i=array.length;i--;) {
    if (array[i]>max) {
      max = array[i];
      idx = i;
    }
  }
  return idx;
}