# größten wert ermitteln?



## DocHentai (31. August 2007)

Hallo zusammen,

wie stelle ich es am Besten an, wenn ich z. B. aus einem Array den größten Wert ermitteln möchte? Sprich es die werte 7 3 8 5 9 gespeichert und ich will nun den wert neun ermitteln. Leider habe ich nichts passendes gefunden, was evtl. daran liegt das ich vllt. falsch gesucht habe... 

Danke schon mal


----------



## Sven Mintel (31. August 2007)

Es ginge bspw. so:

```
Array.prototype.max=function()
{
  return(this.sort(function(a,b){ return b-a;})[0]);
}


arr=[7,3,8,22,11,5,4711,99,9,1];
alert(arr.max());
```


----------



## DocHentai (6. September 2007)

Hallo, 

kannst du oder jemand anderes fähiges mir das bitte noch kurz für Blöde (sprich für mich)erklären  ich will das jetzt nicht einfach nur stur kopieren.... 

Danke schon mal


----------



## Sven Mintel (6. September 2007)

Jo, kann ich 
Erstmal im Vorraus...diese Methode lässt sich nur auf "echte" JS-Arrays anwenden.
"Echt" soll heissen: indizierte Array.
Warum:das, was man in JS als assoziativen Array kennt, ist überhaupt kein Array, sondern ein Objekt ohne die typischen Eigenschaften eines Arrays....man kann es bspw. nicht mit der Array-Methode *sort()* sortieren.

Erklärung:

```
Array.prototype.max=function()
```
Das vordefinierte Array-Objekt wird um die Methode *max()* erweitert


```
return(this.sort(function(a,b){ return b-a;})[0]);
```


```
this
```
 Ist ein Zeiger auf das Objekt selbst, also den Array



```
sort
```
der Array wird sortiert über die Array-spezifische Methode *sort()*



```
function(a,b){ return b-a;}
```
der Methode sort() wird eine eigene Sortierfunktion als Parameter übergeben.
Standardmässig sortiert *sort()* lexikalisch, mit der eigenen Sortierfunktion sortiert es numerisch, und zwar absteigend.



```
return((....)[0])
```
Die Methode *max()* gibt das erste Element des sortierten Arrays zurück, da absteigend sortiert wurde, ist dies das höchste



 ....das war schon alles


----------

