Hallo,
als ich neulich an einem Projekt gearbeitet habe, kam ich an Javascript nicht vorbei. Ich musste ein Javascript-Array mit dynamischen Werten aus einer Datenbank füllen. Nun, da ist ja nichts kompliziertes dabei, aber ich lief in ein Problem, welches ich nicht direkt erkannt hatte und es hat mich schon etwas Zeit gekostet, dass Problem zu finden. Schauen wir uns das ganze doch mal an.
Um in Javascript ein Array zu deklarieren, benutzen wir folgende Syntax:
var arrTest = new Array();
Damit haben wir eine Variable vom Typ Array und können diese auch entsprechend verwenden.
Manchmal ist es aber notwendig ein Array schon bei der Deklaration mit Werten zu füllen. Das habe ich bisher immer so gemacht:
var arrTest = new Array(5,4,3,2,1) ; // Integer-Array
Soweit, so gut.
Wenn wir uns die Variable jetzt mal anschauen wollen (Beispielsweise mit alert()), sehen wir folgendes
5,4,3,2,1
Gut, dass hat ja wunderbar geklappt.
Jetzt kann es aber passieren, dass wir nur einen einzigen Wert aus der Datenbank bekommen, das würden wir dann so machen:
var arrTest = new Array(4);
Und genau das, verursacht das Problem.
Javascript erkennt die 4 nicht als Feldwert, sondern nimmt an, dass wir das Array mit einer Länge von 4 Werten initialisieren.
Wenn wir uns das Array jetzt ansehen würden, dann sähe das so aus:
,,,
Das ist schlecht, denn eigentlich wollten wir ja die 4 als Wert in dem Array haben. Was können wir also tun?
Javascript stellt uns, wie jede andere Script-/Programmiersprache eine Methode zur Verfügung, mit der man Werte in ein Array schreiben kann: push()
push() ist eine Methode des Array-Objektes:
var arrTest = new Array();
arrTest.push(4);
Damit haben wir nun die 4 als Feldwert in das Array geschrieben und wir können nun weiter scripten.