Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вывод нескольких переменных с функции (https://javascript.ru/forum/misc/46763-vyvod-neskolkikh-peremennykh-s-funkcii.html)

SnowyWolf 23.04.2014 00:29

Вывод нескольких переменных с функции
 
Подскажите пожалуйста, каким образом можно вывести с функции в форму?
function qwerty (nach,kon,razr)
{
	
var i,j;
var skolko=0;
var sum1,sum2;
var str=new String();
var strresult=new String();

for (i=nach; i<=kon; i++)
{
	str=i.toString();
	sum1=sum2=0;

	for (j=0; j<razr/2; j++)
	{
		symbol=str.charAt(j);
		chis=parseInt(symbol);
		sum1=sum1+chis;
	}

	for (j=razr/2; j<razr; j++)
	{
		symbol=str.charAt(j);
		chis=parseInt(symbol);
		sum2=sum2+chis;
	}

	if (sum1==sum2)
    {    
	    skolko=skolko+1;
		strresult=strresult.concat(str);
		strresult=strresult.concat(",")
	}
}  
return strresult;
return skolko;
}

Из этой функции необходимо вывести переменные strresult, skolko в форму в поля с id r и t:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<TITLE>Задание_1 </TITLE>
<SCRIPT type="text/javascript" src="1.js"></SCRIPT>
</HEAD>
<BODY bgcolor=#1af843 text=#400080>
 
<form>
<input type="text" id=q><br>
<input type="text" id=w><br>
<input type="text" id=e><br>
<textarea cols="60" rows="2" id="r"></textarea><br>
<textarea cols="60" rows="2" id="t"></textarea>
<input type="button" value="Расчитать" onClick="t.value,r.value=qwerty (q.value,w.value,e.value)">

</form>      
 
</BODY>
</HTML>

jsnb 23.04.2014 03:14

document.getElementById('r').value = strresult;
document.getElementById('t').value = skolko;

SnowyWolf 23.04.2014 09:37

Цитата:

Сообщение от jsnb (Сообщение 308889)
document.getElementById('r').value = strresult;
document.getElementById('t').value = skolko;

Первое работает, а второе пишет "undefined"!

Makarov 23.04.2014 10:02

Чего бы объект не вернуть, и с его свойствами уже работать?
function f(val){
     var result = {};
     result.someProp = 'trololo';
     result.otherProp = val;
     return result;
}

jsnb 23.04.2014 10:29

Цитата:

Сообщение от SnowyWolf (Сообщение 308903)
Первое работает, а второе пишет "undefined"!

Это не в return писать надо, а в код функции. Функция не может возвращать что-то несколько раз за 1 запуск. Если нужно передать несколько значений то, как уже сказали выше, используйте объекты, массивы, да хоть строку с разделителями.

SnowyWolf 23.04.2014 11:32

Цитата:

Сообщение от jsnb (Сообщение 308906)
Это не в return писать надо, а в код функции. Функция не может возвращать что-то несколько раз за 1 запуск. Если нужно передать несколько значений то, как уже сказали выше, используйте объекты, массивы, да хоть строку с разделителями.

Я так и сделал:
function qwerty (nach,kon,razr)
{
	
var i,j;
var skolko=0;
var sum1,sum2;
var str=new String();
var strresult=new String();

for (i=nach; i<=kon; i++)
{
	str=i.toString();
	sum1=sum2=0;

	for (j=0; j<razr/2; j++)
	{
		symbol=str.charAt(j);
		chis=parseInt(symbol);
		sum1=sum1+chis;
	}

	for (j=razr/2; j<razr; j++)
	{
		symbol=str.charAt(j);
		chis=parseInt(symbol);
		sum2=sum2+chis;
	}

	if (sum1==sum2)
    {    
	    skolko=skolko+1;
		strresult=strresult.concat(str);
		strresult=strresult.concat(",")
	}
}  
document.getElementById('r').value = strresult;
document.getElementById('t').value = skolko;
}

И мне не просто надо вывести на экран, а именно в указанные поля.

рони 23.04.2014 11:51

SnowyWolf,
ваша формула считает ерунду -- обьясните что вы хотите вычислить?

SnowyWolf 23.04.2014 11:58

рони,
Вычислить, сколько чисел с четным количеством цифр (например двузначные, четырехзначные и т.д.) имеют одинаковую сумму первой и второй половины цифр.

Например: четырехзначные числа 1001, 1010 - являются числами, у которых сумма первых двух цифр - 2 равна сумме второй пары цифр.

рони 23.04.2014 12:12

SnowyWolf,
уже теплее -- а что задаётся параметрами nach,kon,razr ?

SnowyWolf 23.04.2014 13:09

рони,
nach - начальное число ,kon - конечное число ,razr - размерность(кратная двум).


Часовой пояс GMT +3, время: 10:54.