2013-03-11 60 views
3

javascript問題在這裏...Javascript最大值的數組,並找到它在哪裏?

我需要找到一個數組中的最高數字,然後返回這個數字在數組中的位置。它不能被排序,因爲它需要與另一個數組中的單詞相匹配。繼承人陣列:

var array1 = dan, john, james, harry, mike; 
var array2 = 66, 33, 85, 34, 45; 

基本上這個數字必須與它的名字相匹配。如果任何人有答案,我會最開心:)

感謝

+0

這些數字是唯一的嗎? – VisioN 2013-03-11 11:06:03

+2

...如果不是僅僅實現你自己的「for」循環,你需要搜索最大值(也可以存儲它的索引)。 – 2013-03-11 11:06:36

+0

看看這裏,我認爲這會解決你的問題=) http://stackoverflow.com/questions/5850956/get-the-array-key-with-the-highest-value-in-javascript – Crowlix 2013-03-11 11:08:47

回答

2

這裏是搜索腳本:

var array1 = ['dan', 'john', 'james', 'harry', 'mike']; 
var array2 = [66, 33, 85, 34, 45]; 
var max = array2.length-1; 
for (var i=array2.length-1; i--;) { 
    if (array2[i] > array[max]) { 
     max = i; 
    } 
} 
alert(array1[max]); 
5
var array1 = [ 'dan', 'john', 'james', 'harry', 'mike' ], 
    array2 = [ 66, 33, 85, 34, 45 ], 
    maxPos = Math.max.apply(null, array2), 
    posInArr = array2.indexOf(maxPos); 

console.log(array1[ posInArr ]); // 'james' 

上面的代碼演示了Math.max()Array.prototype.indexOf()使用得到內array2最高的數字,然後發現數的指數該數組。

+0

太棒了,正是我需要的。謝謝! – 2013-03-11 11:37:05

0
var array1 = dan, john, james, harry, mike; 


    Array.max = function(array){ 
     return array1.indexOf(Math.max.apply(Math, array)); 
    }; 
0

你可以閱讀你的陣列成一個圈。如果讀取的數字高於前一個數字,請將其存儲到一個變量中,並使用其索引的第二個變量。

最後你會得到你的數組及其索引的最大值。

相關問題