在数组中查找max和javascript中的对应项

时间:2017-04-05 07:56:20

标签: javascript arrays

我有两个具有相同维度的数组,一个用于频率,一个用于值。

示例:

var value = [20, 40, 10, 80, 16];
var frequency = [10, 16, 25, 31.5, 40];

我用这种方法使用了math.max方法

var maxValue = Math.max.apply(Math, value);

现在我想在频率数组的相同位置找到频率。

4 个答案:

答案 0 :(得分:1)

假设值是唯一的。

var maxValue = Math.max.apply(Math, value);
var index =  value.indexOf(maxValue);
var freq = frequency[index];

答案 1 :(得分:0)

你可以这样做:

var maxValue = Math.max.apply(Math, value); //finding max value
var index_freq = value.indexOf("maxValue "); // findind index of that max
var myFrequecy = frequency[index_freq]; //frequecy value for same as in value

答案 2 :(得分:0)

在O(n)时间内您可以执行以下操作。这应该与单个Math.max()函数一样有效。

var value = [20, 40, 10, 80, 16],
frequency = [10, 16, 25, 31.5, 40],
   result = value.reduce((p,c,i) => c > p.v ? (p.v = c, p.f = frequency[i],p)
                                            : p, {v:-Infinity, f:-Infinity});
console.log(result);

答案 3 :(得分:0)

非常感谢你。 有用! 其他问题

我想划分两个数组的每个元素并创建一个新的元素数组。

我尝试这种方式,但结果是单个值,而不是数组。

var array1 = [20, 40, 10, 80, 16];
var array2 = [10, 16, 25, 31.5, 40];

for (var i=0;i<array1.length;i++) {
     divide = array1[i] / array2[i];
     }

的console.log(除)。

感谢。