| 
	| 
	
	| 
		
	| 
			
			 
			
				06.12.2014, 11:14
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 19.02.2014 
						Сообщений: 16
					 
		
 |  |  
	| 
				Как получить результат работы цикла в виде массива.
			 Подскажите пожалуйста, возможно ли получить результат всех итераций цикла while в виде массива? 
Ниже привожу скрипт. 
 
function calculate(data){
 var calc = {};
 try {
      
      var x = data[0] ||0;
      var y = data[1] ||0;
      var z = data[2] ||0;
      var massive = [];
      if (x+y+z==0)
        return calc;
      while((y-x)>z){
         x+=z;
         d=x*3,14;
     }
         massive.push(x,d);
     console.log(massive);
     return massive;
  }
  catch(err){
    return calc;
  }
}
В результате получил в виде массива лишь последнюю итерацию. А хотелось бы получить все.  
итерация 1 [x1,d1] 
итерация 2 [x2,d2] 
.................. 
итерация n [xn,dn] |  |  
	| 
		
	| 
			
			 
			
				06.12.2014, 11:22
			
			
			
		 |  
	| 
		
			
			| что-то знаю       |  | 
					Регистрация: 24.05.2009 
						Сообщений: 5,176
					 
		
 |  |  
	| Tungus, 
 massive.push(x,d); засунь внутрь оператора while, после вычислений... 
 
	
 
	| Сообщение от Tungus |  
	| d=x*3,14; |  
	
  А так же числа с плавающей точкой пишутся через точку а не запятую... И вообще я так понимаю это число PI тогда нужно: d=x*Math.PI; |  |  
	| 
		
	| 
			
			 
			
				06.12.2014, 12:50
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 30.04.2012 
						Сообщений: 3,018
					 
		
 |  |  
	| Зачем try-catch? 
function calculate(data) {
    var d,
        x = data[0] || 0,
        y = data[1] || 0,
        z = data[2] || 0,
        massive = [];
    if(x + y + z == 0) return {};
    while(y - x > z) {
        x += z;
        massive.push(x, x * Math.PI);
    }
    return massive;
}
 |  |  
	| 
		
	| 
			
			 
			
				06.12.2014, 13:11
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 19.02.2014 
						Сообщений: 16
					 
		
 |  |  
	| 
				Спасибо за помощь
			 Спасибо большое. А проверка, это потому эта функция используется в более длинном скрипте, она нужна там сложная математика. |  |  
	| 
		
	| 
			
			 
			
				06.12.2014, 13:30
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 19.02.2014 
						Сообщений: 16
					 
		
 |  |  
	| Ой Ой действительно получился цикл:Вид цикла [x1, d1,x2,d2,........ xn,dn]- если честно меня это обрадовало.
 А как получить [x1,d1],[x2,d2],....[xn,dn]
 Это возможно?
 |  |  
	| 
		
	| 
			
			 
			
				06.12.2014, 13:48
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 30.04.2012 
						Сообщений: 3,018
					 
		
 |  |  
	| 
function calculate(data) {
    var d,
        x = data[0] || 0,
        y = data[1] || 0,
        z = data[2] || 0,
        massive = [];
    if(x + y + z == 0) return {};
    while(y - x > z) {
        x += z;
        massive.push([x, x * Math.PI]);
    }
    return massive;
}
 |  |  
	| 
		
	| 
			
			 
			
				06.12.2014, 14:33
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 11.09.2010 
						Сообщений: 8,804
					 
		
 |  |  
	| 
				__________________ 
				В личку только с интересными предложениями    |  |  
	| 
		
	| 
			
			 
			
				06.12.2014, 20:46
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 19.02.2014 
						Сообщений: 16
					 
		
 |  |  
	| Спасибо |  |  
	| 
		
	| 
			
			 
			
				08.12.2014, 07:26
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 19.02.2014 
						Сообщений: 16
					 
		
 |  |  
	| Еще раз большое спасибо!Еще один вопрос. Возможно ли полученный массив вида [[x1,d1],[x2,d2],.....[xn,dn]] преобразовать в
 xd1=[x1,d1];
 xd2=[x2,d2];
 .................
 xdn=[xn,dn]
 
 Я перечел все, что касается операторов для массивов и не смог решить.
 |  |  
	| 
		
	| 
			
			 
			
				08.12.2014, 08:17
			
			
			
		 |  
	| 
		
			|  | Тлен       |  | 
					Регистрация: 02.01.2010 
						Сообщений: 6,601
					 
		
 |  |  
	| Можно, но не нужно. Если у вас в коде есть переменные с цифренным индикатором, то с великой вероятностью это говнокод. Массивы именно для таких задач и существуют. Работайте напрямую с массивом. 
				__________________ 29375, 35
 |  |  |  |