Как получить результат работы цикла в виде массива.
Подскажите пожалуйста, возможно ли получить результат всех итераций цикла 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] |
Tungus,
massive.push(x,d); засунь внутрь оператора while, после вычислений... Цитата:
|
Зачем 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; } |
Спасибо за помощь
Спасибо большое. А проверка, это потому эта функция используется в более длинном скрипте, она нужна там сложная математика.
|
Ой Ой действительно получился цикл:
Вид цикла [x1, d1,x2,d2,........ xn,dn]- если честно меня это обрадовало. А как получить [x1,d1],[x2,d2],....[xn,dn] Это возможно? |
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; } |
Цитата:
http://slovari.yandex.ru/array/en-ru/informatics |
Спасибо
|
Еще раз большое спасибо!
Еще один вопрос. Возможно ли полученный массив вида [[x1,d1],[x2,d2],.....[xn,dn]] преобразовать в xd1=[x1,d1]; xd2=[x2,d2]; ................. xdn=[xn,dn] Я перечел все, что касается операторов для массивов и не смог решить. |
Можно, но не нужно. Если у вас в коде есть переменные с цифренным индикатором, то с великой вероятностью это говнокод. Массивы именно для таких задач и существуют. Работайте напрямую с массивом.
|
Часовой пояс GMT +3, время: 15:49. |