Webstatt.org - Community seit 2006 - 2012 (2024?)

array

Avatar user-180
16.11.2009 18: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?

may the force be with you. but mostly with me.
user-203
16.11.2009 18: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)])
}

Denkt dran, Kinder auf dem Rücksitz verursachen Unfälle, Unfälle auf dem Rücksitz verursachen Kinder.
Avatar user-180
16.11.2009 21:33

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

may the force be with you. but mostly with me.
user-203
16.11.2009 22: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"

Denkt dran, Kinder auf dem Rücksitz verursachen Unfälle, Unfälle auf dem Rücksitz verursachen Kinder.