Nächstkleinere Zahl

Ingo41

Mitglied
Also ich hab ein Array, das Zahlen enthält, und eine Funktion.

Die Funktion bekommt eine Variable (eine Zahl) übergeben und soll die nächstkleinere Zahl wiedergeben, die NICHT im Array enthalten ist.
Das wollte ich mit einer Schleife lösen, funktioniert aber nicht
Bitte helft mir!

Code:
already = new Array();
already[0] = 1;already[1] = 2;already[2] = 3;already[3] = 4;already[4] = 8;already[5] = 9;already[6] = 10;already[7] = 11;already[8] = 12;already[9] = 13;already[10] = 14;already[11] = 15;
 
function array_minus(zahl) {
  for (i=zahl; i=1; i-1) {
	if (already[i]!=zahl) {return(i);}
  }
}

Bsp:
wenn ich aufrufe array_minus(16), dann soll die Fkt 7 returnen.

Vielen Dank!
MfG
ingo
 
Hi,

EDIT (Denkfehler):
Code:
function array_minus(zahl) {
    for (var i=zahl - 1; i==1; i--) {
        if (!inArray(allready, i)) return i;
    }
    return 0;
}

function inArray(a, c) {
    for (var i in a) {
        if (a[i] == c) return true;
    }
    return false;
}
(allerdings ungetestet)

Gruß
.
 
Zuletzt bearbeitet:
Hi,

@Datics Lösung funktioniert schon, aber es haben sich in der Funktion array_minus zwei kleine Fehler eingeschlichen.
Code:
function array_minus(zahl) {
    for (var i=zahl - 1; i>=1; i--) {
        if (!inArray(already, i)) return i;  // Vertippt und already mit zwei l geschrieben
    }
    return 0;
}
Ciao
Quaese
 

Neue Beiträge

Zurück