Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Mit JavaScript in einem Array den Gr. Wert finden.





Frage

Hallo, ich möchte aus einem Array den Größten wert raussuchen. Es gibt aber auch einträge die nich definiert sind. Ich dachte das ist doch ganz einfach, aber... Mein Ansatz: var a=new Array(10) max_a=0; ...einlesen der Werte.... for (i in a) { if(a[i+1]>a[i]) { max_a=a[j+1]; } } Wenn ich die Wert über document.write anzeigen lasse ist alles OK.

Antwort 1 von rfb

for (j in a) 
{ 
if(a[j]>max_a)  max_a=a[j]; 
}


wozu vergleichst du a[j+1] mit a[j] ? Das hätte Sinn, wenn du die Werte sortieren wolltest, nicht um nur den größten Wert zu finden. a[j+1] läuft zudem übers Array hinaus.

Antwort 2 von Dr.Ma-Busen

Moin!

Na ja, da ist ohl ein kleiner Denkfehler in deinem Script. [:)]

Und zwar an der stelle hier:

if(a[j+1]>a[j])

(habe mal das i durch ein j ersetzt, weil das sonst als BB-Code für kursive schrift erkannt wird)

Du vergleichst dort ob das element a[j+1] größer ist als a[j]

Wenn jetzt deine Liste so aussehen würde:
( 2, 5, 1, 70, 6, 8)

Dann steht im 1. durchlauf der Forschleife in max_a 5 drin, weil 5 > 2 ist.
Im 2. durchlauf wird da immer noch 5 drin stehen, weil 5 > 1
Im 3. durchlauf 70 weil 70 > 1
Im 4. durchlauf 70 weil 70 > 6
Im 5 durchlauf 8 weil 8 > 6
Im 6. durchlauf wird auch noch 8 drin stehen.

Da ist z.B. schon mal ein Denkfehler. Die zweite sache ist die for- Schleife, in i steht jeweils der wert aus einem Listenelement und nicht die Indexnummer des Listenelementest. Sprich wenn in deine Liste z.B. der Wert 60 vor kommt, aber in deiner Liste nur max. 10 elemente sind, dann kannst du nicht das 61. element ansprechen wie du es in der If- Abfrage mit a[i+1] machst.

Dann hast du an dieser stelle
max_a=a[j+1];
ein j verwendest und kein i, jetzt weiß ich aber nicht ob das so gewollt ist.

MfG

Antwort 3 von rfb

oops, das mit dem Index war mir gerade nicht aufgefallen, also richtig:

for ( j=0;  j<a.length; j++ ) 
{ 
if(a[j]>max_a) max_a=a[j]; 
}


Antwort 4 von JochenME

Ja...ich muß noch viel lernen!!!
Danke

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: