webForumDet fria alternativet

nybörjare i javascript

51 svar · 3 252 visningar · startad av Vinnaren · sida 2 av 3

@ndersMedlem sedan juni 200032 969 inlägg
#21

Prova först att stava rätt på length, och se om du får något fel då.

VinnarenMedlem sedan sep. 2005833 inlägg
#22

haha, oj :r men det hjälpte inte får samma meddelande :S

spangoMedlem sedan juni 20008 205 inlägg
#23

Det här:

var myArray = new Array(6);
myArray[10, 14, 16, 17, 24, 11, 22];

är inte helt vettigt ;) Först gör du en array med sex element - vilket är helt OK - men sen försöker du indexera den med sju index på samma gång, vilket inte går. Skriv:

var myArray = [10, 14, 16, 17, 24, 11, 22];

så får du en array med elementen 10, 14, 16, 17, 24, 11 och 22. Sen kan du skicka iväg den arrayen till din funktion.

VinnarenMedlem sedan sep. 2005833 inlägg
#24

ok, men då får jag felmeddelandet:

Fel: missing ; before statement
Rad: 14, kolumn: 13
Källkod:var myArray[10, 14, 16, 17, 24, 11, 22];

The_HulkMedlem sedan juni 20031 837 inlägg
#25

du har inte med = mellan myArray och [

VinnarenMedlem sedan sep. 2005833 inlägg
#26

ok, då får jag tillbaka felet "NaN". måste vara något mer som e galet :OO

@ndersMedlem sedan juni 200032 969 inlägg
#27

Hur ser alltså koden ut nu?

VinnarenMedlem sedan sep. 2005833 inlägg
#28

i HTML filen:

<script language="JavaScript" type="text/javascript">
	<!--

		var myArray = [10, 14, 16, 17, 24, 11, 22];
		
		testar(myArray);
	//-->
</script>

i js filen

function testar(myArray) 
{		
	var summa;
	var medeltal;
	
	
	for (i=0; i < myArray.length; ++i)
	{
		summa += myArray[i];
	}
	
	medeltal = summa / myArray.length;	
	
	document.write(medeltal);
}
The_HulkMedlem sedan juni 20031 837 inlägg
#29

du måste initiera summa innan du använder den.

var summa = 0;
VinnarenMedlem sedan sep. 2005833 inlägg
#30

tack, det funkar :bire

har nu gjort en ny array (newArray) som retunerar medeltalet, största talet samt minsta talet tillbaka till html sidan, men hur löser man det så det skrivs ut på sidan?? vill inte anv document.write i js filen utan i html filen.

Peter SMedlem sedan dec. 20025 483 inlägg
#31

Ett sätt

document.getElementById("myElm").innerHTML = medeltal;

<span id="myElm"></span>
VinnarenMedlem sedan sep. 2005833 inlägg
#32

hmm. ok, men problemet är själva överföringen från js filen. Har anv följande

var newArray = [medeltal, storsta, minsta];	
return newArray;

men hur får man över newArray till html sidan? har provat att anropa funktionens namn, men då krokar det med myArray som jag skickar till js filen.

The_HulkMedlem sedan juni 20031 837 inlägg
#33

du får tillbaka en array av fin funktion. för att plocka ut ett värde ur den arrayn kan du skrive myArray[0] för att få första värdet, myArray[1], myArray[2] för de andra.

VinnarenMedlem sedan sep. 2005833 inlägg
#34

hmm, får det inte att fungera.

<script language="JavaScript" type="text/javascript">
	<!--

		var myArray = [1, 14, 16, 17, 28, 11, 22];
		
		testar(myArray);
		
		document.write(newArray[0]);
		document.write(newArray[1]);
		document.write(newArray[2]);
	//-->
</script>

får felmeddelandet:
Fel: newArray is not defined
Rad: 18

emissionMedlem sedan dec. 19996 721 inlägg
#35

Du får bestämma dig för myArray eller newArray.

@ndersMedlem sedan juni 200032 969 inlägg
#36

om du ska returnera något från funktionen kan det ju vara bra att ta emot det också.

...
		newArray = testar(myArray);
...
VinnarenMedlem sedan sep. 2005833 inlägg
#37

hmm, nu hänger jag nog inte med.

all kod jag har:
i JS filen:

function testar(myArray) 
{		
	var summa =0;
	var medeltal;
	var minsta;
	var storsta;
	
	for (i=0; i < myArray.length; ++i)
	{
		summa += myArray[i];
	}
		
	myArray.sort();
		
	storsta = myArray[(myArray.length -1)];
	minsta = myArray[0];
		
	medeltal = summa / myArray.length;	
				
		
	var newArray = [medeltal, storsta, minsta];
	
	return newArray;
}

i HTML filen

<script language="JavaScript" type="text/javascript">
	<!--

		var myArray = [1, 14, 16, 17, 28, 11, 22];
		
		testar(myArray);
				
		document.write(newArray[0]);
		document.write(newArray[1]);
		document.write(newArray[2]);
	//-->
</script>

det är alltså var newArray = [medeltal, storsta, minsta]; som ska skrivas ut på html sidan. myArray skickar till js filen medans newArray skickar tillbaka svaren till html filen (ska göra iaf)

The_HulkMedlem sedan juni 20031 837 inlägg
#38

det stämmer att du skicka tillbaka värdet i newArray i funktionen men variablen är bara deklarerad i funktionen och går inte att använda utanför.

du måste alltså ta emot det som skickas tillbaka av din funktion.

var newArray = testar(myArray);
VinnarenMedlem sedan sep. 2005833 inlägg
#39

tack, nu funkar det :bire

Hade nu tänkt att lägga till en ny sak på sidan.
Jag har en string (myStr) som jag skickar till js filen. i js filen ska alla stora bokstäver bli små, och de små bli stora. Hur löser man det enklast?

har börjat lite men vet inte om jag e på rätt spår.

function omvandla(myStr) 
{	
            var Omvandlat;

	for (i = 0; i < myStr.length; i++)
	{
		Omvandlat += myStr.charAt(i);
	}

}
The_HulkMedlem sedan juni 20031 837 inlägg
#40

testa att söka lite på google efter "javascript islowercase" så hittar du en del exempel på hur man kan lösa det.

gör det och försök få ihop något så kan vi hjälpa till mer sen.

/r är det en massa uppgifter du gör?

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)