JS Average

dakata__92

Super Moderator
Здравейте колеги! Нещо ми се опъва тази проста задачка! Искам с JS да си направя калкче на което във формата Х примерно да добавям сифри и да ползвам сепаратор запетайка ","! Пример: 5,8,9 ! След като въведа цифрите във полето и се натисне изчисли желая да се сумират всички въведени цифри в полето и да бъдат преброени колко на брой са ! В примера са 3!
Ето малко код ако може да помогнете ще съм много благодарен!

Код:
<html>
<title></title>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<script>
function IsGood(sText)
{
   	var ValidChars = "0123456789.,";
   	var Char;
   	var n = "";
	for (i = 0; i < sText.length; i++) 
	{ 
      	Char = sText.charAt(i); 
      	if (ValidChars.indexOf(Char) != -1) 
		{
			n += Char;
       	}
	}
	return n;
}
function algorithm1()
{
	var x = IsGood(document.getElementById('x').value);
	var y = IsGood(document.getElementById('y').value);
	x = x.split(",");
	
	var SumX="";
	for (var i=0; i<x.length; i++)
	{ 
		SumX = SumX + x[i];
		nx=i+1;
		document.write(x[i] + "<br>" +SumX+"<br>"+nx+"<br>==============<br>");
	}
	document.write("<hr>"+SumX+"<br>"+nx+"<br>");
}

</script>
</head>

<body>

<form method="post">
<table>
<tr>
<td>X:<input type="text" id="x" value=""></td>
</tr>
<tr>
<td>Y:<input type="text" id="y" name="y" value=""></td>
</tr>
<tr>
<td><input type="button"  onclick="algorithm1()" value="Изчисли"></td>
</tr>
</table>
</form>

</body>
</html>
 
[js]
var stoinosti = $("tex-pole").val();
var array = stoinosti.spit(",");
var i = array.legth;
while( i > 1)
{
document.write(array);
i--;
}
[/js]

мисля че така ще стане .. не съм го тествал .. ноо просто идеята ми е че самото разчленяване става с функция - split() .. :)
 
Благодаря но не се получава желаното от мен! Наложително е да е в Чист JS варянт също :) Плюс това ми се налага да се сумират нещата ! Можеш ли да помогнеш с кода който съм дал или подобен?
 
За да пасне твоя код към моя се получава така :
[js]
var array = x;
var d = array.length;
var a = 0;
var s = "";
while( a <= d )
{
s = s + array[a];
document.write(array[a] + " " + s +"<br>" );
a++;
}
[/js]

Въпроса ми е защо като въведа 5,8,9 и реша да ги сумирам в цикъла винаги ми ги долепя сякаш са стринг и се получава 589, а не сумирани цифри равни на 22... Как да избегна това залепяне и да се подаде математическа команда ???
 
http://jsfiddle.net/nMh4s/2/

По въпроса ти защо като сумираш "числата" се получава 589, това е защото не си ги конвертирал към Integer. Това може да стане чрез parseInt(string) или по-лесно - string|0 , както е в моя пример :)

ЕДИТ - не прочетох че е наложително да е в чист JS. След малко ще си променя мненеито...

Чист JS:
http://jsfiddle.net/54E29/2/
 
djman каза:
http://jsfiddle.net/nMh4s/2/

По въпроса ти защо като сумираш "числата" се получава 589, това е защото не си ги конвертирал към Integer. Това може да стане чрез parseInt(string) или по-лесно - string|0 , както е в моя пример :)

ЕДИТ - не прочетох че е наложително да е в чист JS. След малко ще си променя мненеито...

Чист JS:
http://jsfiddle.net/54E29/2/
+1
 

Back
Горе