Array: Höchster Wert
    
ifa
    
    
      
    
  - javascript
 nicht angemeldet
 nicht angemeldetHallo alle! Wenn ich verschiedene Werte in einen Array mit nicht von vornherein bekannter Länge eintrage: Wie kann ich anschliessend am einfachsten die Indexnummer des höchsten Werts bestimmen?
Also:
meinArray=[13,-27,315,47,177];  
Wie bekomme ich am einfachsten das Ergebnis 2 (für das dritte Arrayelement und den höchsten Wert) heraus?
Moin!
Hallo alle! Wenn ich verschiedene Werte in einen Array mit nicht von vornherein bekannter Länge eintrage: Wie kann ich anschliessend am einfachsten die Indexnummer des höchsten Werts bestimmen?
Also:
meinArray=[13,-27,315,47,177];
> Wie bekomme ich am einfachsten das Ergebnis 2 (für das dritte Arrayelement und den höchsten Wert) heraus?  
  
  
Schreibe Dir diese Funktion am besten so um, dass diese einen Array mit dem key und dem Wert des Elementes zurück gibt.  
  
function maxItem(ar) {  
  // gibt Nr und Wert des größten Elementes zurück  
  var max  = ar[0];  
  var maxi = 0  
  for (var i = 1; i < ar.length; i++) {  
    if (this[i] > max) {  
      max = this[i];  
      maxi=i;  
    }  
  }  
  return array(i,max);  
}  
  
  
  
Wenn Du eigentlich nur den höchsten oder niedrigsten Wert brauchst, dann reicht:  
  
~~~javascript
Array.prototype.max = function(){  
    return Math.max.apply( Math, this );  
};  
	  
Array.prototype.min = function(){  
    return Math.min.apply( Math, this );  
};
Aufruf z.B. mit:
var ar=new Array(1,3,2,7,5);  
alert (ar.max());
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Moin!
Das kommt davon, wenn man seinen Code umschreibt. Hier die korrigierte und getestete Version:
function maxItem(ar) {  
  // gibt Nr und Wert des größten Elementes als Array zurück  
  var max  = ar[0];  
  var maxi = 0  
  for (var i = 1; i < ar.length; i++) {  
    if (ar[i] > max) {  
      max = ar[i];  
      maxi=i;  
    }  
  }  
  return Array(maxi,max);  
}  
var  meinArray=new Array(1,3,2,7,5);  
var arMax=maxItem(meinArray);  
alert ('Maximum ist ' + arMax[1] + ' an Position ' + arMax[0] + '.');
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Bestens, funktioniert prächtig. Danke!