Dies sieht aus wie es sollte funktionieren, aber aus irgendeinem Grund wird der indizierte Wert nicht entfernt. Ich denke, es muss etwas wirklich einfaches sein, aber ??? Hier ist der Code:Spleiß entfernt Artikel nicht von Array
var debug:Boolean = true;
var rtn:Array = database.getView("vwWFSApplicationsEnabled").getColumnValues(0);
var i:Integer = rtn.indexOf("Admin");
if (debug) print ("Position of Admin = " + i + " rtn = " + rtn.toString())
if (i >= 0){
if (debug) print("In splice ")
rtn.splice(i , 1);
if (debug) print("after Splice " + rtn.toString())
}
return rtn.unshift("--- Select Application ---");
Wenn es läuft ich dies im Protokoll:
HTTP JVM: Position von Admin = 1 RTN = [Absence Anfragen, Admin, Demo]
HTTP JVM: In Spleiß
HTTP JVM: nach Splice [Abwesenheit Anfragen, Admin, Demo]
i wird in den indexOf auf 1 gesetzt, was korrekt ist, also sollte der Spleiß (i, 1) den Wert Admin aus dem Array entfernen, aber nach dem Spleiß ist der Wert Admin immer noch in der Liste. Ich habe die Aufteilung in anderen Situationen verwendet und es funktioniert dort, aber ich sehe keinen Unterschied in diesem Code.
Das sieht grundsätzlich korrekt aus. Gibt Ihr getView() ein echtes Javascript-Array zurück? Oder wahrscheinlich etwas anderes, das Spleiß nicht korrekt implementiert? – Matthias247
Das sieht für mich nach TypeScript aus. –
@TomMettam TypeScript hat keinen (eingebauten) 'Integer'-Typ - das 'number'-Primitiv wird stattdessen verwendet, um eine numerische Variable zu deklarieren. –