Weil Array.length findet den Schlüssel mit der höchsten Zahl, addiert 1 und gibt das Ergebnis aus:
Code:myArray=new Array(); myArray[3]='Hallo'; document.write(myArray.length); // Ergibt 4
ist test.length == 12 und wir löschen mit delete(test[3]) einen wert daraus, bleibt test.length == 12. weiss jemand wieso?
Weil Array.length findet den Schlüssel mit der höchsten Zahl, addiert 1 und gibt das Ergebnis aus:
Code:myArray=new Array(); myArray[3]='Hallo'; document.write(myArray.length); // Ergibt 4
Hi, "delete" löscht bzw. entfernt nur das "Objekt/Element", das an der entsprechenden Stelle des Array steht.
Du könntest aber das ganze leicht "nachbauen":
TschauCode:<html> <head> <title>Malleus' Test</title> <script type="text/javascript"> <!-- Array.prototype.deleteIndex = function( v ) { var T = this , o = T[ v ]; for ( var i = v ; i < T.length ; i++ ) T[ i ] = T[ i + 1 ]; T.length -= 1; return o; } function doIt() { var myValues=new Array("a","b","c","d","e","g"); myValues.deleteIndex(2); alert(myValues.length); alert(myValues.join(" - ")); } </script> </head> <body> <button onclick="doIt()">Click Me</button> </body> </html>
Frank
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)