webForumDet fria alternativet

Lopa igenom array

5 svar · 298 visningar · startad av monAmour

monAmourMedlem sedan dec. 2002258 inlägg
#1

Har problem med att lopa igenom en array för att skriva ut värdena.
Så här ser skriptet ut:

var menuItems = new Array();

menuItems[3] = "Företaget";
menuItems[3][42] = "Detta är Senta";
menuItems[3][10] = "Affärsidé";
menuItems[3][11] = "Varumärket";
menuItems[3][12] = "Strategi";
menuItems[3][13] = "Marknad";
menuItems[3][14] = "Nyckelpersoner";
menuItems[3][15] = "Trinod-gruppen";

menuItems[4] = "Så arbetar vi";
menuItems[4][18] = "OLK(TM)";
menuItems[4][16] = "Leverantörssamverkan";
menuItems[4][17] = "Process och Teknik";
menuItems[4][44] = "OLK(TM) i praktiken";
menuItems[4][19] = "Samverkansformer";

menuItems[5] = "Vårt erbjudande";
menuItems[5][21] = "Totalentrepenad";
menuItems[5][22] = "Målentrepenad";
menuItems[5][23] = "MÅL-områden";
menuItems[5][24] = "Logistik-Transport-Distribution";
menuItems[5][25] = "Multinätverk / Stads-& regionalnät";
menuItems[5][26] = "Bank & finans";
menuItems[5][27] = "Resebyrå & Hotell";
menuItems[5][28] = "TIME-sektorn";
menuItems[5][29] = "sportMANIA";

menuItems[7] = "Anslagstavla";
menuItems[7][35] = "Nyheter & Pressreleaser";
menuItems[7][30] = "Kalendariet";

menuItems[6] = "Kalejdoskop";
menuItems[6][36] = "Sajtöversikt & navigering";
menuItems[6][31] = "Organisationsstruktur";

menuItems[8] = "Referensobjekt";
menuItems[8][37] = "m.a.p. MÅL-områden";

menuItems[9] = "Kontakta oss";
menuItems[9][32] = "Jobba på Senta";
menuItems[9][33] = "Lediga platser";

function writeOut() {
	for (i=0; i<menuItems.length; i++){
		if (menuItems[i] != undefined){
			document.write(menuItems[i]+"<br>");
			for (h=0; h<menuItems[i].length; h++) {
				if (menuItems[i][h] != undefined) {
					document.write("-"+ menuItems[i][h] +"<br>");
				}
			}
		}
	}
}

Det funkar nu att skriva ut första nivån I arrayen.. men inte andra? får inge felmeddelande heller konstigt nog?!
Varför jag har så konstiga Index Nr. i min array är därför att de är ID:n från databasen som hänvisar till sidan vid navigering.
Därför behöver de vara med på ett sådant sätt.. eller kan man göra annorlunda?

CheguelinMedlem sedan juli 2003303 inlägg
#2

Vad är din idé? Vågar man fråga hur du har tänkt?

monAmourMedlem sedan dec. 2002258 inlägg
#3

Har tänkt att använda arrayen för att skriva ut en meny. Tanken är att jag ska få url numret (indexarna) samt länkrubriken att implementeras i en färdig avancerad dhtml meny jag hittat.
Därför behöver jag lopa på det här sättet..

Alltså först vandra igenom huvudindexet och sedan leta efter underindex och skriva ut dem.

CheguelinMedlem sedan juli 2003303 inlägg
#4

Du måste kalla på writeOut, tyvärr så är det inte det enda problemet. När du skriver t ex menuItems[3][42] = "Detta är Senta"; så förutsätter det att menuItems[3] är en array, vilket den inte är.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#5

Det här kan vara något att utgå ifrån. En ganska elegant lösning om jag får säga det själv, (och det får jag :) )

<script>
var menuItems = new Array();

// Kom ihåg att detta inte är CSS-kod, även om det liknar sådan.
// Var därför noga med syntaxen!
menuItems[3] = {
title : "Företaget",
42 : "Detta är Senta",
10 : "Affärsidé",
11 : "Varumärket",
12 : "Strategi",
13 : "Marknad",
14 : "Nyckelpersoner",
15 : "Trinod-gruppen"}

menuItems[4] = {
title : "Så arbetar vi",
18 : "OLK(TM)",
16 : "Leverantörssamverkan",
17 : "Process och Teknik",
44 : "OLK(TM) i praktiken",
19 : "Samverkansformer"}

//osv
for(i in menuItems){
	document.write(menuItems[i].title+"<br />")
	for(j in menuItems[i]){
		if(j != "title"){
			document.write("<a href='sida.php?topic=" + j + "'>-" + menuItems[i][j]+"</a><br />")
		}
	}
}

</script>
JojoxxMedlem sedan juni 20004 308 inlägg
#6

Vi kan ju göra det ännu elegantare genom att även göra om menuItems till ett objekt :)

<script type="text/javascript">
// Kom ihåg att detta inte är CSS-kod, även om det liknar sådan.
// Var därför noga med syntaxen!
var menuItems={
	"Företaget" : {
		42 : "Detta är Senta",
		10 : "Affärsidé",
		11 : "Varumärket",
		12 : "Strategi",
		13 : "Marknad",
		14 : "Nyckelpersoner",
		15 : "Trinod-gruppen" },
	"Så arbetar vi" : {
		18 : "OLK(TM)",
		16 : "Leverantörssamverkan",
		17 : "Process och Teknik",
		44 : "OLK(TM) i praktiken",
		19 : "Samverkansformer" }
	}

//osv
for(i in menuItems){
	document.write(i+"<br />")
	for(j in menuItems[i]){
		document.write("<a href='sida.php?topic=" + j + "'>-" + menuItems[i][j]+"</a><br />")
	}
}
</script>
136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)