Javascript 数组中最大浮点数的索引

Javascript 数组中最大浮点数的索引,javascript,arrays,Javascript,Arrays,如何获取浮点数组中最大元素的索引 [0.00000461977924223204、0.8323721355744392、0.9573732678543363、1.247661642212255E-14、2.84660585616335E-8] 一旦我得到这个索引,我就想得到这个索引处另一个数组的值 让我们调用第二个数组: ['a',b',c',d',e'] 当我运行以下命令时,得到的是'b',而不是'c' 我迭代了第一个数组,并将浮点映射到字符串。然后我对第一个数组(浮动数组)的第一个元素处的字

如何获取浮点数组中最大元素的索引

[0.00000461977924223204、0.8323721355744392、0.9573732678543363、1.247661642212255E-14、2.84660585616335E-8]

一旦我得到这个索引,我就想得到这个索引处另一个数组的值

让我们调用第二个数组:

['a',b',c',d',e']

当我运行以下命令时,得到的是
'b'
,而不是
'c'

我迭代了第一个数组,并将浮点映射到字符串。然后我对第一个数组(浮动数组)的第一个元素处的字符串进行排序


但这两种方法都不起作用。总是返回错误的字符串。

我建议使用
Math.max()
indexOf()

使用
Array.prototype.reduce()的方法
这允许reduce逻辑具有任意复杂性

首先,设置一些数据:

  var data = [0.000004619778924223204, 0.8323721355744392, 0.9573732678543363, 1.2476616422122455e-14, 2.846605856163335e-8];
  var reference = ['a', 'b', 'c', 'd', 'e'];
然后,找到数组中最大值的值和索引

  var result = data.reduce(function (previousValue, currentValue, index, array) {
    if(previousValue.value > currentValue) {
      return previousValue;
    } else {
      return {value: currentValue, index: index};
    }
  })
  console.log(reference[result.index]);
或者,您可以像这样直接找到引用值

var result = data.reduce(function (previousValue, currentValue, index, array) {
  if(previousValue.value1 > currentValue) {
    return previousValue;
  } else {
    return {value1: currentValue, value2: reference[index]};
  }
})
console.log(result);

这将输出
对象{value1:0.9573732678543363,value2:“c”}

谢谢,我甚至不知道reduce。
  var data = [0.000004619778924223204, 0.8323721355744392, 0.9573732678543363, 1.2476616422122455e-14, 2.846605856163335e-8];
  var reference = ['a', 'b', 'c', 'd', 'e'];
  var result = data.reduce(function (previousValue, currentValue, index, array) {
    if(previousValue.value > currentValue) {
      return previousValue;
    } else {
      return {value: currentValue, index: index};
    }
  })
  console.log(reference[result.index]);
var result = data.reduce(function (previousValue, currentValue, index, array) {
  if(previousValue.value1 > currentValue) {
    return previousValue;
  } else {
    return {value1: currentValue, value2: reference[index]};
  }
})
console.log(result);