如何获取浮点数数组中最大元素的索引?
[0.000004619778924223204, 0.8323721355744392, 0.9573732678543363, 1.2476616422122455e-14, 2.846605856163335e-8]
一旦获得该索引,便想在该索引处获取另一个数组的值。
让我们称之为第二个数组:
['a', 'b', 'c', 'd', 'e']
当我运行以下代码时,我得到的'b'
不是'c'
。
我遍历第一个数组,并将浮点数映射到字符串。然后,将字符串放在已排序的第一个数组(float数组)的第一个元素处。
//aInput in the array of floats.
var emObj={};
for(var i=0; i<aInput.length; i++){
emObj[aInput[i]]=['a', 'b', 'c', 'd', 'e'][i];
}
return emObj[aInput.sort()[0]];
我还尝试了一种方法,该方法遍历浮点数组并将最大值存储在变量中。然后我会做这样的事情:
return ['a', 'b', 'c', 'd', 'e'][aInput.indexOf(largestFloat)];
但是这些都不起作用。总是返回错误的字符串。
我建议使用Math.max()
和indexOf()
var maxNum = Math.max.apply(null, aInput);
var index = aInput.indexOf(maxNum);
return ['a', 'b', 'c', 'd', 'e'][index];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句