Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как получить результат работы цикла в виде массива. (https://javascript.ru/forum/misc/52158-kak-poluchit-rezultat-raboty-cikla-v-vide-massiva.html)

Tungus 08.12.2014 15:49

Блин зараза, не получается получить это дело из под цикла.
Возможно зайти с заднего прохода:
Разбить массив [a,b,c,d,.........n] на [a,b],[c,d],...........[x,n]?

Deff 08.12.2014 15:58

Цитата:

Сообщение от Tungus
Блин зараза, не получается получить это дело из под цикла.

function calculate(data){
 var massive = [];
 var calc = {};
 try {
      var x = data[0] ||0;
      var y = data[1] ||0;
      var z = data[2] ||0;
      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;
  }
}

Если не так - вынесите var massive = []; за функцию и обнуляйте при первом вызове итераций

Tungus 08.12.2014 16:59

Нашел более простой способ решения свой именно задачи, щасссссс спробую

Aetae 08.12.2014 18:17

Deff, я применил слово "цифренный" по аналогии с "буквенный", ибо слово цифровой нынче зарезервировано.:)

Tungus, ещё раз: что тебе мешает использовать массив по его прямому назначению? Зачем тебе обязательно создавать 100500 бессмысленных переменных?

Tungus 08.12.2014 18:23

Да на самом деле все же приходит с опытом. Почитал спецификацию, пошарил. И получил нужный мне результат. Это получилось так:
function calculate(data){
  var calc = {};
  try {
    
    var x = data[0] ||0;
    var y = data[1] ||0;
    var z = data[2] ||0;
    var massiveTable = [["CENTER", "CENTER"], ["CENTER", "CENTER"]]
    var massive = [];
    if (x+y+z==0)
      return calc;
    while((y-x)>z){
      x+=z;
      d=(x*Math.PI).toFixed(2);
      massive.push([x,d]);
     }
    massive.splice(0, 0, massiveTable);
    calc ['_massive_']=massive
    console.log(massive);
    return massive;
  }
  catch(err){
  return calc;
  }
}

Deff 08.12.2014 18:26

Цитата:

Сообщение от Aetae (Сообщение 345534)
Deff, я применил слово "цифренный" по аналогии с "буквенный", ибо слово цифровой нынче зарезервировано.:)

:dance: я даж не смотрел кто ( у мну днюха второй день, - отхожу)

danik.js 08.12.2014 18:27

Я что-то пропустил? Зачем у него try/catch?
И сколько вас таких. Одному уже кидал ссылку на перевод massive/array. Это болезнь какая-то заразная что-ли?

Tungus 08.12.2014 18:37

Ну с днем рождения , и всего хорошего через край что бы :)

Tungus 08.12.2014 18:38

На счет try/catch писал выше. А по остальному- я болен

danik.js 08.12.2014 19:33

Цитата:

Сообщение от Tungus
На счет try/catch писал выше.

Это что-ли?
Цитата:

Сообщение от Tungus
А проверка, это потому эта функция используется в более длинном скрипте, она нужна там сложная математика.

:lol:


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