Eigenes Object soll Array enthalten
cascade
- javascript
Tach und gutes neues :-)
Ich habe ein eigenes objekt erstellt, was in einem element auch einen Array enthält. Leider "vergisst" das objekt jedesmal beim hinzufügen über "add" den bisherigen array inhalt. was mache ich falsch?
hier der code:
function menuItem(a_title, a_url, a_script) {
this.items = new Array();
this.title = a_title;
this.url = a_url;
this.script = a_script;
this.add = function (a_item) {
this.items[length] = a_item;
alert ("arraylength=" + this.items.length);
}
this.size = function () {
return this.items.length;
}
this.hasItem = function (a_itemName) {
for (var i=0; i < this.items.length; i++) {
if (this.items[i].title == a_itemName) {
return this.items[i];
break;
}
}
return false;
}
this.hasItems = function() {
if (this.items.length > 0) {
return true;
}
else {
return false;
}
}
this.getItems = function() {
if (this.hasItems) {
return this.items;
}
}
}
this.add = function (a_item) {
this.items[length] = a_item;
this.items[this.items.length] = a_item;
oder
this.items.push(a_item);
Struppi.
OH MANN :-D
Heut bin ich blind :-)
DAAANKE
this.add = function (a_item) {
this.items[length] = a_item;this.items[this.items.length] = a_item;
oder
this.items.push(a_item);Struppi.
this.items[this.items.length] = a_item;
oder
this.items.push(a_item);
Meiner Erfahrung nach ist die erste Fassung noch tauglicher als die (elegantere) zweite: Ich bin mit push() vor Jahren gehörig auf die Nase gefallen, weil nicht alle Browser pushen wie sie sollen. Veränderungen an Arrays nehme ich, wo möglich, immer mithilfe ihrer Länge vor.
Herzlich, twb