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 - размерность(кратная двум).

рони 23.04.2014 14:34

Счастливый билет
 
SnowyWolf, если нужен razr добавьте сами строка 16
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script>
 function qwerty(nach, kon) {
      kon -= nach;
      var arr = [];
      for (var i = 0; i < kon; i++) {
          var num = '' + (i + nach);
          var n = num.split('');
          var sum = 0;
          if (n.length % 2) continue;
          var len = n.length / 2
          for (var k = 0; k < len; k++) {
              sum += (n.shift()-n.pop());
          }
        
          if (sum == 0) arr.push(num)
      }
     document.getElementById('r').value = arr;
     document.getElementById('t').value = arr.length;
  }
</script>
</head>
<body>
<form>
<input type="text" id=q value="1000"><br>
<input type="text" id=w value="1500"><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="qwerty(+q.value,+w.value)">
</form>
</body>

</html>


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