• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Objekt in Array

znieh99

New member
Hallo Forum,
ich speichere in einen Array 'point'-Objekte und möchte diese über den Array-Index wieder auslesen. Beim auslesen eines Array-Elements ist das Ergebnis immer 'undefiniert', obwohl das Array existiert. Es folgt der Code-Teil:
lg Heinz

===== Edit: Codeschnipsel aus http://forum.jswelt.de/javascript/61834-objekt-array.html (Ich packt den hier drüber, weil ich vermute, dass es eine ältere Version von deinem geposteten Code ist. Wenn nicht, einfach löschen.)=====
Code:
var fields = new CreateFieldPos();
var fieldPos = fields[1];       // fieldPos ist undefiniert !!!

function CreateFieldPos() {
    this.arr = [];
    var i = 0;
    this.arr[i++] = new CreatePoint(100, 0);
    this.arr[i++] = new CreatePoint(150, 0.5);
    this.arr[i++] = new CreatePoint(300, 1.5);
}
    /**
 * Erstellt ein Point Objekt
 * @param {type} x
 * @param {type} y
 * @returns {Point-Object}
 */
function CreatePoint(x, y) {
    this.x = x;
    this.y = y;
}
==== /Edit ====

Code:
function testObject() {
    var fields = new FieldPos();
    var fieldPos = fields[1];       // fieldPos ist undefiniert !!!
}
function FieldPos() {
    this.arr = [];
    var i = 0;
    this.arr[i++] = new Point(100, 0);
    this.arr[i++] = new Point(150, 0.5);
    this.arr[i++] = new Point(300, 1.5);
}
    /**
 * Erstellt ein Point Objekt
 * @param {type} x
 * @param {type} y
 * @returns {Point-Object}
 */
function Point(x, y) {
    this.x = x || 0;
    this.y = y || 0;
}
 
Zuletzt bearbeitet von einem Moderator:
dann stimmt der gezeigte code nicht mit dem von dir benutzten überein. zumindest findet in diesen beiden zeilen keine zuweisung statt:
HTML:
var fields = new CreateFieldPos();
var fieldPos = fields[1];       // fieldPos ist undefiniert !!!
 
dann stimmt der gezeigte code nicht mit dem von dir benutzten überein. zumindest findet in diesen beiden zeilen keine zuweisung statt:
HTML:
var fields = new CreateFieldPos();
var fieldPos = fields[1];       // fieldPos ist undefiniert !!!

InZeile1 wird die Create.. Funktion aufgerufen und die Instanz des Array in fields gespeichert. Das funktioniert auch, und ist im Debugger sichtbar.
In Zeile 2 wird das Element 1 des Array mittels der Instanz nach fieldPos kopiert (aber das funktioniert nicht).
Der Code ist identisch.
 
In Zeile 2 wird das Element 1 des Array mittels der Instanz nach fieldPos kopiert (aber das funktioniert nicht).
das 1. element des arrays ist fields.arr[0]

- - - Aktualisiert - - -

Oder so
Code:
var fields = new CreateFieldPos();
var fieldPos = fields[1];       // fieldPos ist undefiniert !!!

function CreateFieldPos() {
    [].push.call(this, new CreatePoint(100, 0));
    [].push.call(this, new CreatePoint(150, 0.5));
    [].push.call(this, new CreatePoint(300, 1.5));
}

function CreatePoint(x, y) {
    this.x = x;
    this.y = y;
}
 
Zurück
Oben