Avatar billede lizardine Nybegynder
28. april 2003 - 16:53 Der er 8 kommentarer og
1 løsning

Eksempler på collection objektet

Hey

Jeg sidder og arbjeder lidt med collection objektet i Javascript men har ikke rigtig styr på det.

Det jeg ønsker er, at tilføje et Id og et Name til min collection også hive disse informationer ud igen... eksempelvis at man angiver Id'et også får man retuneret Name.

Er der nogen har en fiks hvorpå man kan lave dette?

På forhånd tak.
Avatar billede =maddog= Nybegynder
28. april 2003 - 17:02 #1
Det fungerer vist som et associativt array, man skal bare bruge
collection.item(identifier) = value;
og ikke
assArray[identifier] = value;

et associativt array til eksempel:

assList = new Array();
assList["Brian"] = "Eriksen";
alert(assList["Brian"]);
alert(assList.Brian);
assList["Volmer"] = "Volmer";
assList["Viggo"] = "Mortensen";
assList["Elvis"] = "Priestley";
for (n in assList) {
document.write(n+" "+assList[n]+"<br>");
}
Avatar billede lizardine Nybegynder
28. april 2003 - 17:06 #2
Ok - Men hvad så hvis jeg gerne vil smide et value pair ind i mit Array ???
F.eks Id = 1221 & Name = "Jim"
Avatar billede =maddog= Nybegynder
28. april 2003 - 17:09 #3
assList["1221"] = "Jim"; // ?? ikke sandt
Avatar billede lizardine Nybegynder
28. april 2003 - 17:18 #4
Fuldstændig rigtigt... Men så får at være rigtig besværlig... ovenstående vil ikke kunne anvendes hvis jeg havde 3 eller flere værdier jeg gerne vil tilføje til mit array. Det jeg fisker lidt efter er den sammen fremgangsmåde som man benytter i f.eks. VB.

Dim MyCollection = New Collection
Dim MyContainer = New Object

MyContainer.Id = 11221
MyContainer.Name = "Peter"
MyContainer.Email = "peter@yahoo.com"
MyContainer.Phone = 88778877

MyCollection.Add (MyContainer)
Avatar billede =maddog= Nybegynder
28. april 2003 - 17:29 #5
function ValueSet(id,name,mail,phone) {
  this.id = id;
  this.name = name;
  this.mail = mail;
  this.phone = phone;
}

myArr = new Array();
myArr["123"] = new ValueSet("123","Peter","pete@foo.bar","88778877");
myArr["234"] = new ValueSet("234","viggo","ass@foo.bar","44224422");
str="";
for (vs in myArr) {
  str+=vs;
  for (v in myArr[vs]) {
    str+=" "+myArr[vs][v];
  }
  str+="<br>";
}
document.write(str);
Avatar billede lizardine Nybegynder
28. april 2003 - 17:31 #6
Cool :-) Gider du ikke komme med en besvarelse så jeg kan tildele dig dine point?
Avatar billede =maddog= Nybegynder
28. april 2003 - 17:35 #7
ok
myArr["123"].mail giver også Peters mail direkte, MEN det vil give en fejl, hvis der ikke findes nogen med ID 123. Derfor

if (myArr["123"]) document.write(myArr["123"].mail);

// Den næste linje bliver ikke skrevet
if (myArr["124"]) document.write(myArr["124"].mail);

Den slags checks kan man jo anbringe i en smart lille validerings funktion. :D
Avatar billede lizardine Nybegynder
28. april 2003 - 17:36 #8
Mange tak for hjælpen :-)
Avatar billede =maddog= Nybegynder
28. april 2003 - 17:37 #9
ingen problemos.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester