我有兩個具有相同維度的數組,一個用於頻率,一個用於值。在數組中找到最大值並在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);
現在我想找到頻率陣列的相同位置的頻率。
我有兩個具有相同維度的數組,一個用於頻率,一個用於值。在數組中找到最大值並在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);
現在我想找到頻率陣列的相同位置的頻率。
你可以這樣做:
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
假設值是唯一的。
var maxValue = Math.max.apply(Math, value);
var index = value.indexOf(maxValue);
var freq = frequency[index];
就在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);
太謝謝你了。 它的工作原理! 其他問題
我想分割兩個數組的每個元素並創建一個新的元素數組。
我嘗試以這種方式,但結果是一個單一的值,而不是一個數組。
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)。
感謝。
'frequency [value.indexOf(maxValue)]'應該這樣做。 – Rajesh