Kontext: Ich baue ein Agent Based Model Immobilienmarkt sim. Ich Haushaltsgegenstände haben, die Eigenschaften und Methoden haben und bisher habe ich sie wie folgt erstellt:Neue Objektinstanzen, Generator, Array, Namensgeneration
var houseHoldArray = [];
var Household = function(name, house) {
this.name = name;
this.house = house.address;
this.x = house.x;
this.y = house.y;
this.isHomeOwner = true;
this.isSelling = false;
};
Household.prototype.draw = function() {
ellipse(this.x, this.y, 10, 10);
};
Household.prototype.determinMove = function() {
if(random(0, 100) <= 75){
this.isSelling = true;
}
};
var household1 = new Household("Smith", house1);
var household2 = new Household("Black", house2);
var household3 = new Household("Johnson", house3);
var household4 = new Household("Williams", house4);
var household5 = new Household("Jones", house5);
houseHoldArray.push(household1, household2, household3, household4, household5);
household1.draw();
household2.draw();
household3.draw();
household4.draw();
household5.draw();
ich jetzt eine Funktion erstellen möchten, ausgelöst auf einen Button beim Anklicken, das würde automatisch eine bestimmte Anzahl von neuen erstellen Haushaltsinstanzen und speichern sie im Array, da ich sie später mit einer for-Schleife durchlaufen muss und bestimmte Aktionen ausführen muss, abhängig vom Status ihrer Eigenschaften isSelling und isHomeowner.
Frage: Wie erstelle ich eine Funktion, die auf dem Klick auf eine Schaltfläche, wird eine bestimmte Menge an neuen Houselhold
Objektinstanzen und schieben Sie sie auf die houseHoldArray
generieren?
Sie können einen effizienteren Weg finden, dies zu tun, aber am Ende möchte ich ein Array einzelnen Haushalt mit Informationen haben, die mir erlauben, etwas zu laufen:
for (var i = 0; i < houseHoldArray.length; i++) {
if houseHoldArray[i].isSelling {
//do something
}
houseHoldArray[i].determinMove()
}