Willkommen in der Webstatt Zum Webstatt Blog und Stories
fish fish am 16.11.09 19:24

tach

ich habe folgenden code:

var fonts = new Array();
function addFont(fontName)
{
alert(fontName);
fonts[fonts.length] = fontName;
alert(fonts[fonts.length])
}


beim ersten alert wird das richtige ausgegeben, beim zweiten kommt "undefined". was läuft da falsch?

netcup.de Warum gibt es hier Werbung?
Johannes am 16.11.09 19:57

Das liegt daran, dass als fonts.length 1 gezählt wird, das erste Arrayelement aber mit 0 bezeichnet wird.

Das dürfte also laufen:
var fonts = new Array();
function addFont(fontName)
{
alert(fontName);
fonts[fonts.length] = fontName;
alert(fonts[(fonts.length-1)])
}

fish fish am 16.11.09 22:33

hm jetzt gehts, danke.
Warum ist fonts.length = 1 obwohl doch noch gar kein element im array vorhanden ist?

Johannes am 16.11.09 23:23

Ist es ja eben nicht.
Beim ersten Aufruf ist fonts.length=0, also wird fonts[0] gesetzt. Danach ist fonts.length=1 und dann ergäbe fonts[fonts.length] = fonts[1] = "undefined"

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt