2-Dimensionaler Array: Alert wenn best.Eintrag nicht vorhanden?
Christoph
- javascript
Hallo,
ich habe folgendes Problem:
ich habe in einem (riesigen) 2-dimensionalen Array allerhand Kundennummern gespeichert, denen Berater zugeteilt sind.
Nun soll, wenn eine eingegebene Kundennummer nicht existiert, eine Fehlermeldung erscheinen.
Mein (unvollkommenes =) ) Script sieht ungefähr so aus:
*********
var i_final = 0;
function getCons(id)
{
for(var i = 0; i < clients.length; i++)
for(var j = 0; j < clients[i].length; j++)
if(clients[i][j] == id){
i_final = i;
return i_final;
}
if (i == clients.length && j == clients[i].length && i_final == 0) {
url="detailskundenummer.html?falsch="+id;
alert ("Die von Ihnen eingegebene Kundennummer ist leider nicht in unserem derzeitigen Datenbestand vorhanden!");
}
}
*********
Wenn also der letzte Eintrag des letzten Arrays erreicht ist, und die Variable i_final immer noch 0 ist (also kein passender Eintrag gefunden wurde), sollte nun eigentlich das PopUp erscheinen. Funktioniert leider nicht...
Gibt es vielleicht eine elegantere Möglichkeit zu testen, ob ein best. Wert überhaupt vorhanden ist?
*********
var i_final = 0;
function getCons(id)
{
for(var i = 0; i < clients.length; i++)
for(var j = 0; j < clients[i].length; j++)
if(clients[i][j] == id){
i_final = i;
return i_final;
}
return springt aus der Funktion raus du brauchst break, das beendet die Schleife, aber du musst bei Schleifen beenden.
Vielleicht ist es sinnvoll die äußere Schleife als while schleife anzulegen:
function getCons(id)
{
var i_final = 0;
var i = 0;
while(clients[i] && !i_final)
{
for(var j = 0; j < clients[i].length; j++)
if(clients[i][j] == id)
{
i_final++;
break;
}
i++;
}
if (i == clients.length && j == clients[i].length && i_final == 0) {
die Prüfung von i und j brauchst du in dieser Variante nicht. Es reicht:
if (!i_final) {
url="detailskundenummer.html?falsch="+id;
alert ("Die von Ihnen eingegebene Kundennummer ist leider nicht in unserem derzeitigen Datenbestand vorhanden!");
}
}
Struppi.
Hallo,
vielen Dank für die schnelle Antwort.
Dein Script funktioniert tadellos!
Gruss Christoph