array auf vorhandensein überprüfen
Tony
- javascript
Hallo ihr da draussen..
Ich stehe vor einem kleinen Problem, welches mich jetzt schon den ganzen Tag beschäftigt..
Also, es handelt sich um folgendes..:
Ich habe ein 2 Dimensionales Array:
captionArray = new Array;
Soweit klar..
if(!isset(captionArray['bild1'][0]))
{
captionArray['bild1'] = new Array;
captionArray['bild1'][0] = "Beschreibung blabla";
}
Der Code oben geht nicht.. Aber im Prinzip würde ich das gerne so realisieren.. Habt ihr da eine Idee? (Ich weiss, dass die isset-Funktion nicht in Javascript existiert.. Wie aber kann ich überprüfen, ob ein bestimmter Arrayeintrag schon gesetzt wurde..?
lg
[latex]Mae govannen![/latex]
Der Code oben geht nicht.. Aber im Prinzip würde ich das gerne so realisieren.. Habt ihr da eine Idee? (Ich weiss, dass die isset-Funktion nicht in Javascript existiert.. Wie aber kann ich überprüfen, ob ein bestimmter Arrayeintrag schon gesetzt wurde..?
Der typeof-operator kann helfen.
Nicht gesetzt:
captionArray = [];
var captionArray = new Array();
captionArray['bild1'] = [];
//captionArray['bild1'][0] = 'irgndwas';
if (captionArray && captionArray['bild1'] && typeof captionArray['bild1'][0] !== 'undefined') {
alert("Wert gesetzt");
}
else {
alert("nix");
}
Gesetzt:
captionArray = [];
var captionArray = new Array();
captionArray['bild1'] = [];
captionArray['bild1'][0] = 'irgndwas';
if (captionArray && captionArray['bild1'] && typeof captionArray['bild1'][0] !== 'undefined') {
alert("Wert gesetzt");
}
else {
alert("nix");
}
Cü,
[latex]Mae govannen![/latex]
captionArray = [];
var captionArray = new Array();
gna .. das hat man von copy&paste :(
Erste Zeile einfach nicht beachten
Cü,
[Kai](http://selfhtml.kaichen.in)
--
Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?
[Mein Selfhtml-Kram](http://selfhtml.kaichen.in)
Guten Morgen!
Also, ich danke euch herzlichst für eure Antworten..!
if (captionArray && captionArray['bild1'] && typeof captionArray['bild1'][0] !== 'undefined') {
alert("Wert gesetzt");
}
So habe ich das jetzt gelöst - und es funktioniert super :-) Dankeschön!
lg
tony
var captionArray = new Array();
captionArray['bild1'] = [];
captionArray ist gar kein Array, jedenfalls bekommt er bis hier kein einziges Array-Element zugewiesen und hat demnach auch eine length von 0.
»Assoziative Arrays« gibt es in JavaScript nicht. Bei der obigen Zuweisung wird eine Objekteigenschaft angelegt, aber kein Array-Element. Das geht, weil Arrays auch Objekte sind.
Um Verwirrungen und spätere Überraschungen zu vermeiden, sollte man daher direkt caption = new Object() bzw. in der Kurzschreibweise caption = {}; verwenden.
Mathias
Hallo Du da drinnen,
myarr = new Array(2);
myarr[0] = new Array(1);
myarr[0][0] = "Hallo";
myarr[0][1] = "Welt";
for (i=0; i<=3; i++)
{
if (myarr[0][i])
{
alert(myarr[0][i]);
}
}
Viel Spass.
Hi,
if(!isset(captionArray['bild1'][0]))
analog geht hier:
if (typeof captionArray[...] != "undefined")...
oder Du nutzt einen try-catch block:
try {
if (captionArray['bild1'][0])...
} catch (error) {
// testout
alert(error)
}
Gruesse, Joachim