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

[HOW-TO/TUTORIAL] Array aus einer eigenen Klasse, bessere Möglichkeit dies umzusetzen?

heckpopper

New member
Hallo zusammen,

für ein kleines Modul muss ich einige Daten zwischenspeichern, d.h. zwischen 0 und 10 Datensätze. Hierfür hab ich mir eine eigene Klasse angelegt
und dafür ein Array initialisiert. Neue Datensätze füge ich mit push hinzu. Funktioniert nun so im Rohbetrieb, aber es gibt doch bestimmt bessere Wege dies
umzusetzen. Soll ich mir eine zusätzliche Klasse Erstellen die dann das array initialisert mit datensätze etc? In Java hab ich sowas ähnliches mal mit einer Map gemacht.

Code:
function datensatz(name, color, valuex, valuey){

	this.name=name;
	this.color=color;
	this.valuex=valuex;
	this.valuey=valuey;


    this.setname = function(value)
    { this.name = value;  }

    this.setcolor = function(value)
    {this.color = value; }

    this.getname = function()
    {return this.name; }

    this.getcolor = function()
    {return this.color; }
}

var database  = new Array();

database.push(new datensatz("AA", "blue"));
database.push(new datensatz("BB", "green"));
database.push(new datensatz("CC", "yellow"));
database.push(new datensatz("DD", "black"));
database.push(new datensatz("EE", "white"));

for (var i = 0; i < database.length; i++) {
	console.log(i + ".Object: " + database[i].getname());

Danke euch
 
Ja, man sieht, dass du aus der Java-Ecke kommst...

In JS macht man das etwas anders.

Prinzipiell würde ich für einen stupiden Datenspeicher, der nichts kann, keinen eigenen Konstruktor machen, sondern einfach ein Object. Und wenn die Namen eindeutig sind und die Reihenfolge nicht wichtig ist, würde ich aus der speichernden Variable auch ein Object machen und die Namen als Keys verwenden:
Code:
var database = {
	AA: {color: "blue"},
	BB: {color: "green"},
	CC: {color: "yellow"}
};
Object.keys(database).forEach(function(key, i){
	console.log(i + ". Object: " + key);
});

PS: in JS gibt es keine Klassen.
PPS: getter und setter in dieser Form sind in JS komplett sinnfrei, da es keine privaten Eigenschaften gibt.
 
Zurück
Oben