---
title: "Felmeddelande - not an object"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/106529-felmeddelande-not-an-object"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "skyman"
published: "2004-07-01T12:44:46.000Z"
updated: "2004-07-03T13:53:02.000Z"
replies: 8
views: 568
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/106529-felmeddelande-not-an-object"
---

# Felmeddelande - not an object

## #1 — skyman, 2004-07-01T12:44Z

Denna kod:

```
<html>
<head>
<script language="javascript">
<!--
function LoadForm(){
	var myArr = new Array();
	myArr["4.0"]["0"]["NETWORK"]=["lite text", "???", "", "bla bla", "bla bla", "read"];
}
//-->
</script>
</head>
<body onload="LoadForm();">
</body>
</html>
```

 
Ger felmeddelande:
'4.0.0' is null or not an object... 
Vad betyder det?
Är det ett felaktigt sätt att definera en array?

Permalänk: https://www.webforum.nu/p/106529

## #2 — Jojoxx, 2004-07-01T14:08Z

Jepp. En array använder tal (integer) som nyckel meddans "4.0", "0" och "NETWORK" är strängar. Ett Object kan liknas vid en array vid detta hänsende där du kan ha egenskaper till objektet. Så här:

```
	var myArr={
		"4.0":{
			"0":{
				"NETWORK":["lite text", "???", "", "bla bla", "bla bla", "read"]
			}
		}
	}
```

(anm. myArr är kanske inte det mest logiska längre med tanke på att det inte är en array)

myArr\["4.0"\]\["0"\]\["NETWORK"\] är nu definierad som en array.

Permalänk: https://www.webforum.nu/p/1378058

## #3 — skyman, 2004-07-01T14:37Z

Tanken är att jag ska generera en javascript-array med hjälp av php, med information som jag hämtar från en fil.

Jag villl komma ifrån att behöva rita upp en jättearray enligt:

```
var myArr={
		"4.0":{
			"0":{
				"NETWORK":["lite text", "???", "", "bla bla", "bla bla", "read"]
			}
		}
	}osv...
```

 
utan bara kunna skriva:

```
myArr["4.0"]["0"]["NETWORK"]=[...];
myArr["4.0"]["1"]["NETWORK"]=[...];
myArr["4.0"]["2]["NETWORK"]=[...];
```

 
Så fixar mitt javascript resten.

Jag har gjort så att jag har försökt få till en array som du skrev men det blir alldeles för komplicerat med parenteser, kommatecken och andra lösa tecken som ska dit, eller inte...

Har du något tips på hur man kan komma förbi detta?

Permalänk: https://www.webforum.nu/p/1378071

## #4 — RGB, 2004-07-01T16:32Z

> Är det ett felaktigt sätt att definera en array?

Du definerar *myArr* på ett korrekt sätt men sen försöker du hantera *myArr\["4.0"\]* som en array utan att ha definerat den som en sådan.

```
var myArr = new Array();
	((myArr["4.0"]=[])["0"]=[])["NETWORK"]=["lite text", "???", "", "bla bla", "bla bla", "read"];
```

Permalänk: https://www.webforum.nu/p/1378118

## #5 — skyman, 2004-07-02T07:02Z

Ok, då gör jag som RGB sa...

Men kan jag inte stega genom arrayen som vanligt då?

```
	var myArr = new Array();
			((myArr["4.0"]=[])[0]=[])["network"]=["lite text", "???", "", "bla bla", "bla bla", "read"];
			((myArr["4.0"]=[])[0]=[])["network"]=["lite text", "???", "", "bla bla", "bla bla", "read"];
			((myArr["4.0"]=[])[0]=[])["network"]=["lite text", "???", "", "bla bla", "bla bla", "read"];
			((myArr["4.0"]=[])[0]=[])["software"]=["lite text", "???", "", "bla bla", "bla bla", "read"];
			((myArr["4.0"]=[])[0]=[])["software"]=["lite text", "???", "", "bla bla", "bla bla", "read"];
			
			((myArr["5.0"]=[])[0]=[])["network"]=["lite text", "???", "", "bla bla", "bla bla", "read"];
			((myArr["5.0"]=[])[0]=[])["software"]=["lite text", "???", "", "bla bla", "bla bla", "read"];
	for(var tspVer in myArr){
		for(var n=0;n<100;n++){
			if(myArr[tspVer][n])
				alert(n);
			else
				n=100;
		}
	}
```

Permalänk: https://www.webforum.nu/p/1378298

## #6 — Jojoxx, 2004-07-02T08:45Z

> **skyman skrev:**
>
> myArr\["4.0"\]=\[\] ...

Problemet är här att på varje rad skriver du över myArr\["4.0"\] och skapar en ny tom array och allt som fanns lagrat där tidigare försvinner. En annan variant:

```
function inject(a,b,c,arr){
	if(!myArr[a]){ myArr[a]={}; } if(!myArr[a][b]){ myArr[a][b]={}; }
	myArr[a][b][c]=arr;
}

var myArr = new Object();
inject("4.0","0","NETWORK",[1,2,3]);
inject("4.0","1","NETWORK",["a","b","c"]);
inject("4.0","2","NETWORK",[4,5,6]);

for(var tspVer in myArr){
	for(var n in myArr[tspVer]){
		for(var nn in myArr[tspVer][n]){
			alert(myArr[tspVer][n][nn]);
		}
	}
}
```

eller

```
alert(myArr["4.0"]["0"]["NETWORK"]);
```

Permalänk: https://www.webforum.nu/p/1378315

## #7 — skyman, 2004-07-02T09:24Z

Detta ser kanonbra ut...
Jag måste ha lite annorlunda efter som det kan finnas fler av samma:

```
inject("4.0","0","NETWORK"...
```

 
Så jag måste ha ett id till:

```
inject("4.0","0","NETWORK",[b]0[/b],...
```

 
Och då ser den slutgiltiga koden ut:

```
function inject(a,b1,c,[b]d[/b],arr){
	if(!myArr[a]){ myArr[a]={}; } if(!myArr[a]){myArr[a][b1]={};} [b]if(!myArr[a][b1][c]){myArr[a][b1][c]={};}[/b]
	[b]myArr[a][b1][c][d]=arr;[/b]
}

var myArr = new Object();
inject("4.0","0","NETWORK","1",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","0","NETWORK","2",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","0","NETWORK","3",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","NETWORK","17",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","NETWORK","18",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","NETWORK","19",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","NETWORK","20",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","NETWORK","21",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","SOFTWARE","23",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","SOFTWARE","24",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","SOFTWARE","25",["text","mer","ännu mer","lite till","slut..."]);
// osv...

for(var tspVer in myArr){
	for(var n in myArr[tspVer]){
		for(var nn in myArr[tspVer][n]){
			[b]for(var nnn in myArr[tspVer][n][nn]){[/b]
				alert(myArr[tspVer][n][nn][b][nnn][/b]);
			}
		}
	}
}
```

 
Tack så mycket för hjälpen...
Jag skulle nästan kunnat offra en arm för att få detta löst! :)

// Döpte om b till b1 för att kunna skriva ut lite fet text...

Permalänk: https://www.webforum.nu/p/1378332

## #8 — skyman, 2004-07-02T12:44Z

Hmmm... 
Jag ska ladda en selectbox med första raden i varje cell...
Jag får felmedelande att selectboxen inte är ett objekt...
Vad är det för fel? Jag har kört med **new Option** förr och då har det fungerat...

Se nedan:

```
<html>
<head>
<script language="javascript">
<!--
function inject(a,b,c,d,arr){
	if(!myArr[a]){ myArr[a]={}; } if(!myArr[a][b1]){myArr[a][b1]={};} if(!myArr[a][b1][c]){myArr[a][b1][c]={};} if(!myArr[a][b1][c][d]){myArr[a][b1][c][d]={};}
	myArr[a][b1][c][d]=arr;
}
var myArr = new Object();
inject("4.0","0","NETWORK","0",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","0","NETWORK","1",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","0","NETWORK","2",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","0","NETWORK","3",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","0","NETWORK","4",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","0","NETWORK","5",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","0","NETWORK","6",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","0","NETWORK","7",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","0","SOFTWARE","8",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","0","SOFTWARE","9",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","0","SOFTWARE","10",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","NETWORK","0",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","NETWORK","1",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","NETWORK","2",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","NETWORK","3",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","NETWORK","4",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","NETWORK","5",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","NETWORK","6",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","NETWORK","7",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","SOFTWARE","8",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","SOFTWARE","9",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","1","SOFTWARE","10",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","2","NETWORK","0",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","2","NETWORK","1",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","2","NETWORK","2",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","2","NETWORK","3",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","2","NETWORK","4",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","2","NETWORK","5",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","2","NETWORK","6",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","2","NETWORK","7",["text","mer","ännu mer","lite till","slut..."]);
inject("4.0","2","SOFTWARE","8",["text","mer","ännu mer","lite till","slut..."]);

x=0;
for(var tspVer in myArr){
	for(var n in myArr[tspVer]){
		for(var nn in myArr[tspVer][n]){
			for(var nnn in myArr[tspVer][n][nn]){
				switch(nn){
					case "NETWORK":
 						[b]if(myArr[tspVer][n][nn][nnn][0] && nnn==0)
 							document.form1.selectNetwork[x] = new Option("'+myArr[tspVer][n][nn][nnn][0]+' '+myArr[tspVer][n][nn][nnn][3]+'", "");[/b]
 						x++;
						break;
					case "SOFTWARE":
						x++;
						break;
				}
			}
		}
	}
}
 //-->
</script>
</head>
<body>
<form name="form1">
<select name="selectNetwork">
<option selected>-</option>
</select>
<input type="text" name="test">
</form>
</body>
</html>
```

Permalänk: https://www.webforum.nu/p/1378419

## #9 — Jojoxx, 2004-07-03T13:53Z

Felet beror på att när du försöker skapa en ny option i listan finns den inte definierad eftersom den först definieras längre ner i html-koden. Kör din kod onload istället så kommer det att fungera bättre.

Permalänk: https://www.webforum.nu/p/1378746

---

Tråden på webben: https://www.webforum.nu/amne/javascript/106529-felmeddelande-not-an-object
