2017-04-05 111 views
1

我有兩個具有相同維度的數組,一個用於頻率,一個用於值。在數組中找到最大值並在javascript中找到最大值

實例:

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

我所用的方法math.max以這種方式

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

現在我想找到頻率陣列的相同位置的頻率。

+10

'frequency [value.indexOf(maxValue)]'應該這樣做。 – Rajesh

回答

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 
1

假設值是唯一的。

var maxValue = Math.max.apply(Math, value); 
var index = value.indexOf(maxValue); 
var freq = frequency[index]; 
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);

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(divide)。

感謝。