Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[JS] dynamisch nieuw object aanmaken

Pagina: 1
Acties:

  • elTigro
  • Registratie: November 2000
  • Laatst online: 18-11 19:11

elTigro

Es un Gringo!

Topicstarter
Ik heb hier een javascriptwerkje liggen waar ik mee bezig ben, maar nu loop ik tegen iets aan waarvan ik even niet weet hoe ik dit op een nette manier kan oplossen. Aangezien ik ook niet weet hoe ik het op een ranzige manier voor elkaar moet krijgen toch maar even deze vraag. 8)

Ik wil dynamisch een nieuw object aanmaken in een stuk javascript. Het probleem is alleen dat ik niet weet hoe ik het object wil gaan noemen. de bedoeling is dat het ongeveer als volgt gaat:


JavaScript:
1
2
3
4
5
6
7
//pseude javascript eerder
function makenew( handle) {

var nummertje=Math.round(100*Math.random());
"handle"+"nummertje"= new eenofanderobject (handle);

}


Op deze manier dus. Het is de bedoeling dat het object een random nummer (of gewoon een volgnummer) krijgt, omdat ik vantevoren niet weer hoeveel objecten ik wil gaan aanmaken.

Ik heb zelfs gedacht aan een soort if exist(object1) then use object2 methode, maar dat is nou ook niet zo schaalbaar, en daar komt nog bij dat dat wel heel ranzig is.

Kan iemand me een hint geven hoe dit aan te pakken aub.

Lazlo's Chinese Relativity Axiom:No matter how great your triumphs or how tragic your defeats --approximately one billion Chinese couldn't care less.


  • Juup
  • Registratie: Februari 2000
  • Niet online
Je zou ze in een array kunnen push()-en
JavaScript:
1
2
var handles = [];
handles.push(new eoao(handle))

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Waarom doe je het niet als zoveel andere software?

code:
1
2
  var objectje = new objectje();
  objectje.name = "New document " + (mycollection.count + 1);

[ Voor 15% gewijzigd door RobIII op 07-05-2008 17:34 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • elTigro
  • Registratie: November 2000
  • Laatst online: 18-11 19:11

elTigro

Es un Gringo!

Topicstarter
RobIII schreef op woensdag 07 mei 2008 @ 17:33:
Waarom doe je het niet als zoveel andere software?

code:
1
2
  var objectje = new objectje();
  objectje.name = "New document " + (mycollection.count + 1);
omdat ik van dat objectje er meer dan een van wil hebben.
dus ala

code:
1
2
objectje1.name ="ik ben een"; 
objectje2.name = "ik ben drie";


of iets soortgelijks als hierboven natuurlijk. ik moet zeggen dat ik die array vorm wel goed trek. Zijn er redenen om dat niet te gebruiken, of is het gewoon legaal om te doen?
p.s. die code =pseudo kende ik nog niet :)

Lazlo's Chinese Relativity Axiom:No matter how great your triumphs or how tragic your defeats --approximately one billion Chinese couldn't care less.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
elTigro schreef op woensdag 07 mei 2008 @ 17:40:
[...]


omdat ik van dat objectje er meer dan een van wil hebben.
:? Dan werkt het toch wat ik postte? Als je maar na creatie je objectje toevoegt aan de collection/array.

code:
1
2
3
4
5
6
7
8
9
function makenewobjectje() {
  var objectje = new objectje();
  objectje.name = "New document " + (mycollection.count + 1);
  mycollection.add(objectje)
  return objectje;
}

objectjeFoo = makenewobjectje();
objectjeBar = makenewobjectje();


Waarbij mycollection.count natuurlijk ook gelezen kan worden als myarray.length ofzo.

[ Voor 39% gewijzigd door RobIII op 07-05-2008 17:58 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • elTigro
  • Registratie: November 2000
  • Laatst online: 18-11 19:11

elTigro

Es un Gringo!

Topicstarter
OH, neem me niet kwalijk. ik had niet goed verteld wat ik precies wil :)

Het is meer dat ik niet precies weet hoeveel van deze objecten ik wil maken, en ik weet dus ook niet dat ze objectjeFoo of objectjeBar moeten gaan heten.
Nou ja, de eerste twee kan ik wel foo of bar noemen, maar hoe moet het dan als de draaiende pagina er nog een wil maken? of nog twintig?

Lazlo's Chinese Relativity Axiom:No matter how great your triumphs or how tragic your defeats --approximately one billion Chinese couldn't care less.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Daar gebruik je dan een array/collection voor, precies wat jaaap zei.

[ Voor 20% gewijzigd door RobIII op 07-05-2008 18:11 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • elTigro
  • Registratie: November 2000
  • Laatst online: 18-11 19:11

elTigro

Es un Gringo!

Topicstarter
Ja he, zo als jaaap al voorstelde.
Nou bedankt! Ik ga er eens mee aan de slag.

Lazlo's Chinese Relativity Axiom:No matter how great your triumphs or how tragic your defeats --approximately one billion Chinese couldn't care less.


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Een zijnootje: je kunt, als je een array gebruikt (wat anders...) gewoon random nummers gebruiken, als je wilt. Als je zoiets doet:
JavaScript:
1
2
3
4
var handles = [];
handles[7823] = new eoao();
handles[2930] = new eoao();
handles[1124] = new eoao();

Dan zijn die drie objecten gewoon opvraagbaar met die drie random (Math.random logic moet je er ff bij denken) indexen opvraagbaar, zonder dat je array 7824 elementen groot wordt. Loop je alleen wel tegen de lamp als je in een later stadium wilt weten wat die indexen ook al weer waren :)

Moraal van het verhaal: het loont om push() te gebruiken, en dan evt een random nummer als member in je objectjes flikkeren ;)

[ Voor 3% gewijzigd door _Thanatos_ op 08-05-2008 01:00 ]

日本!🎌


  • elTigro
  • Registratie: November 2000
  • Laatst online: 18-11 19:11

elTigro

Es un Gringo!

Topicstarter
Ik heb dit eens geprobeerd en het werkt allemaal precies zoals ik het in gedachten had.

Ik ben zo vrij geweest om toch maar de push method te gebruiken. Niet dat het nodig is om achteraf alle objecten op te kunnen vragen, maar ik vind het toch net iets netter. Daar komt nog bij dat het niet geheel ondenkbaar is dat als je random indexen gebruikt, er zich uiterarad eens een geval gaat voordoen waarbij de plotseling twee keer het zelfde random getal gekozen wordt, en zodoende een nieuw object een oud overschrijft...

Bedankt nog allen!

Lazlo's Chinese Relativity Axiom:No matter how great your triumphs or how tragic your defeats --approximately one billion Chinese couldn't care less.

Pagina: 1