• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Nächst größeren Wert aus Array auswählen

marcol123

New member
Hallo.

Ich bin ein absoulter Anfänger im Thema JavaScript.

Ich baue zur Zeit einen Rechner für Hydraulik kennwerte.

In diesem Rechner muss ich nun einen errechneten Wert (bsp.: 14,57) nehmen und den nächst größeren Wert (bsp.: 16) aus einem Array auswählen. In dem Array möchte ich verfügbare Schlauchgrößen speichern.

Ich habe leider keine Idee wie ich das ab besten mache.

Wäre super wenn ihr mir dabei helfen könntet.

Gruß marcol123
 
Speicher deine Schlauchgrößen im Array in aufsteigender Reihenfolge. Dann kannst du mit einer Schleife alle Arrayelemente durchgehen und diese mit deinen errechneten Wert vergleichen. Beim ersten Wert der grösser (gleich?) ist legst du den Wert ab und brichst die Schleife ab.
Das wäre der Weg für Pure-JS.
 
Ok. Das hat soweit funktioniert.
Dabei ist aber das nächste Problem aufgetreten.
Wenn der errechnete Wert die im Array gespeicherten übersteigt bekomme ich ein "undefined".
Dieses wollte ich durch diesen Teil verhindern:
Code:
if (SchlauchDN != "undefined") {
document.getElementById('SchlauchDN').innerHTML = SchlauchDN;
} else {
document.getElementById('SchlauchDN').innerHTML = "Keine Schlauchgröße verfügbar!";
 }

Nur funktioniert das nicht.
 
der wert undefined ist kein string und nicht direkt als wert angebbar.
einen string liefert allerdings der typeof-operator.
oder du legst dir eine nicht initialisierte variable an und vergleichst gegen diese (nicht zu empfehlen)
oder du nutzt zum vergleich die globale variable undefined die den wert undefined hat
 
Ich würde die Schlauchgröße mit false vorbelegen und dann mit !== (Strict not equal) abfragen. Als Ansatz (Kein PHP, PHP Tag nur für bessere Darstellung):
PHP:
var berechnung = 14.57;
var groessen = [10,12,14,16,18];
var schlauch = false;
for(var i in groessen){
  if(groessen[i] >=  berechnung){
    schlauch = groessen[i];
    break;
    }
}
var mld = schlauch !== false ? "Grösse "+schlauch : "Grösse nicht verfügbar";
alert(mld);

LG jspit
 
oder du prüfst direkt:
Code:
if (SchlauchDN){
	document.getElementById('SchlauchDN').innerHTML = SchlauchDN;
}
else {
	document.getElementById('SchlauchDN').innerHTML = "Keine Schlauchgröße verfügbar!";
}
 
Zurück
Oben