2013-03-16 45 views
6

我想要實現的是在數組中找到最小的數字和它的初始位置。這裏有一個例子它應該做的:陣列中最小的數字和它的位置

temp = new Array(); 
temp[0] = 43; 
temp[1] = 3; 
temp[2] = 23; 

那麼,到底我應該知道3號和位置1.我也有一個看看這裏:Obtain smallest value from array in Javascript?,但這種方式並沒有給我在陣列中的數位。任何提示,或代碼片斷,讚賞。謝謝。

+2

我的天啊。我只是意識到我可以使用indexOf來查找最小號碼的位置。 – 2013-03-16 22:08:59

+0

Ed.T感謝提到'indexOf'。它幫助了我。 – 2014-10-09 07:54:46

回答

12

通過數組只是循環,並尋找最低的數字:

var index = 0; 
var value = temp[0]; 
for (var i = 1; i < temp.length; i++) { 
    if (temp[i] < value) { 
    value = temp[i]; 
    index = i; 
    } 
} 

現在value包含的最低值,並且index包含那裏是數組中這樣的值最低的指數。

+0

JavaScript沒有'int' ... – MattDiamant 2013-03-16 22:10:29

+0

@MattDiamant:謝謝,糾正了這個問題。 – Guffa 2013-03-16 22:11:22

6

你想用indexOf

http://www.w3schools.com/jsref/jsref_indexof_array.asp

使用您之前所具有的代碼,從另一個問題:

temp = new Array(); 
temp[0] = 43; 
temp[1] = 3; 
temp[2] = 23; 

Array.min = function(array){ 
    return Math.min.apply(Math, array); 
}; 

var value = temp.min; 
var key = temp.indexOf(value); 
+1

+1,雖然你鏈接了w3school ... :( – gdoron 2013-03-16 23:07:22

2

一行代碼:

alist=[5,6,3,8,2] 

idx=alist.indexOf(Math.min.apply(null,alist)) 
+1

請不要只是發佈代碼,解釋代碼的作用。 – 2017-06-07 18:25:20

1

見這個問題的「find max」版本的this answer。這很簡單,很好。您可以使用索引來獲取該元素。