Om du vill använda dig av dialogrutor just, så:
Du måste antingen ha lika många dialogrutor som tal alternativt på något sätt behandla strängen du får tillbaka innan du försöker konvertera den. Om du tex skriver in "3, 7, 9, 0" i din dialogruta är det en sträng med exakt det utseendet du får tillbaka. Komplett med kommatecken och mellanslag. Självklart kan en sådan sträng inte göras om till ett tal! Hur skulle det gå till?
Vill du ha det i en ruta får du bestämma vad du skriver in mellan talen, och sedan gå igenom din sträng tecken för tecken och leta upp avdelarna. Mellan två avdelare, före den första och efter den sista, har du dina tal. Kan också göras med reguljära uttryck, och ev finns det fler sätt?
function funktionen()
{
var myArray = new Array()
antaltal = prompt("Ange antalet tal som ska matas in:");
for (i=0;i<antaltal;i++)
{
inmatat = prompt("Ange ett tal:");
myArray.push(intval(inmatat));
}
}
Jag vill alltså ta en Array, innehållandes heltal, som inparameter. Sen så ska funktionen beräkna medelvärdet av talen som finns i den medsända Arrayen.
var myArray = new Array();
var summa;
var medeltal;
var antaltal;
var inmatat;
antaltal = prompt("Ange antalet tal som ska matas in:");
for (i=0; i < antaltal; ++i)
{
inmatat = prompt("Ange ett tal:");
myArray.push(inmatat);
}
parseInt(summa) = add(myArray);
medeltal = summa / myArray.length;
men det skrivs inget ut, jag skulle tro att felet ligger på add(myArray), finns väll något man skriver för att lägga ihop alla tal i en array?
Men en om en add-funktion fanns så skulle den (internt) behöva loopa igenom alla värden igen, så jag föreslår att du redan i for-loopen räknar upp summan i en variabel summan_så_här_långt
hmm, oki. jag bygger nog om den lite, ska inte anv någon frågeruta, utan det ska vara förbestämda tal som den ska räkna.
jag vill på min html sida skicka in en array med tex 7 siffror.
koden jag har hittills på html sidan:
<script language="JavaScript" type="text/javascript">
<!--
var testar = new Array(6);
testar(10, 14, 16, 17, 24, 11, 22);
//-->
</script>
sen i js filen har jag följande:
function testar(tal1, tal2, tal3, tal4, tal5, tal6, tal7)
{
var summa:
var medeltal;
for (i=0; i < testar.lenght; ++i)
{
summa += myArray[i]
}
medeltal = summa / testar.lenght;
document.write(medeltal);
}
vet inte om jag har gjort rätt, det fungerar iaf inte :r
Döp aldrig en funktion till samma sak som en global variabel (och använd inte globala variabler). Här är en version som borde funkar fina fisken:
var numbers = []; // tom array för alla inmatade siffror
var sum = 0; // summan av alla siffror
var input; // det senaste användaren skrev in
do {
// läs in tal
input = prompt("Skriv in ett tal (tryck på Avbryt för att sluta)", "");
if (input != null){
// användaren tryckte inte på avbryt
var n = parseInt(input);
sum += n;
numbers.push(n);
}
} while(input != null);
// användaren har tryckt på avbryt, räkna ut medelvärde för de inmatade talen
var average = sum / numbers.length;
Detta kraschar såklart om man trycker på avbryt redan första varvet (pga division med noll), men jag lämnar det som en övning till läsaren att ta hand om detta.
hmm, tack för tipset, men jag hade tänkt att göra om så ingen ruta kommer fram, utan talen som ska beräknas är redan inskrivna på html sidan. vet inte redigt hur man löser det på bästa och enklaste sättet??
du har valt att din funktion "testar" ska ta emot 7 parametrar, tal1, tal2, ..., tal7.
dessa använder du inte sen i din funktion utan du försöker använda funktionsnamnet som en array.
Det hade varit smidigare om du skickade in en array till din funktion istället för att säga att det ska vara 7 tal så tar du bara emot en parameter i din funktion.
Döp antingen om arrayn på din HTML-sidan eller byta namn på funktionen. skicka sedan in arrayn på HTML-sidan till funktionen.
ger dig ingen kod till att börja med utan det är bättre om du kan lösa det själv. Vet inte om min förklaring är självklar.
<script language="JavaScript" type="text/javascript">
<!--
var myArray = new Array(6);
myArray[10, 14, 16, 17, 24, 11, 22];
testar(myArray);
//-->
</script>
sen i js filen:
function testar(myArray)
{
var summa;
var medeltal;
for (i=0; i < myArray.lenght; ++i)
{
summa += myArray[i];
}
medeltal = summa / myArray.lenght;
document.write(medeltal);
}
nu kommer det fram "NaN". är väll något med uträkningen? vet inte redigt hur man löser det :q
258 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849