2013-03-16 8 views
6

Co staram się osiągnąć, to znaleźć najmniejszą liczbę w tablicy i pozycji początkowej. Oto przykład tego, co należy zrobić:Najmniejsza liczba w tablicy i pozycja

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

Więc w końcu mam wiedzieć numer 3 i pozycję 1. Miałem również do obejrzenia tutaj: Obtain smallest value from array in Javascript?, ale w ten sposób nie daje mi pozycję numer w tablicy. Wszelkie porady lub fragmenty kodu są mile widziane. Dzięki.

+2

O mój boże. Właśnie zdałem sobie sprawę, że mogę użyć indexOf do znalezienia pozycji o najmniejszej liczbie. –

+0

Ed.T Dzięki za wzmianka o 'indexOf'. Pomogło mi to. –

Odpowiedz

12

Wystarczy pętli tablicy i spojrzeć na najniższym numerem:

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

Teraz value zawiera najniższą wartość, a index zawiera najniższą indeks, gdzie istnieje taka wartość w tablicy.

+0

javascript nie ma 'int' ... – MattDiamant

+0

@MattDiamant: Dzięki, poprawiłem to. – Guffa

6

Chcesz użyć indexOf

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

Korzystanie z kodu, który trzeba było wcześniej, z drugiej kwestii:

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, mimo że powiązałeś w3school ... :( – gdoron

2

One-liner:

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

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

Proszę nie po prostu pisać kodu, wyjaśnić, co robi kod. –

1

Apostolskiej this answer "find max" wersja tego pytania. To jest proste i dobre. Możesz użyć indeksu, aby uzyskać element później.

Powiązane problemy