2015-03-01 3 views
0

Как я могу вызвать функцию внутри цикла? На данный момент возвращается singleObject выходит undefined.Как вызвать функцию в цикле for?

То, что я пытаюсь достичь, заключается в следующем.

  1. создать свой объект из каждой итерации

  2. передать этот объект в другую функцию и процесс дальше. Я возвращаю следующую функцию. Я запутался в том, как вызывать функции внутри функции в цикле for.


function createObjectFromArray(array) { // data is an array with multiple object 
    var len = array.length 
    for (var i=0; i<len; i++) { 
     var singleObject = { 
      fieldOne: array[i].someField.valueOne, 
      fieldTwo: array[i].someField.valueTwo 
     } 
    } //end of for loop 
    myNextFUnction(singleObject) 
} 
+0

Не уверен, что я понимаю, что вы пытаетесь сделать. Почему бы вам просто не вызвать функцию внутри цикла for? –

+0

Вы ничего не делаете асинхронным, почему вы используете '.wait'? –

+0

@ Quntas, вы правы, мне не нужно использовать .wait – meteorBuzz

ответ

0

Вы должны инициализировать singleObject перед циклом. В вашем примере его область действия - тело цикла.

0

Я предлагаю вам позвонить createObjectFromArray(), прежде чем какой-либо асинхронный метод вернет массив данных. Скорее всего, array пуст или не определен в результате

У вас также возникла проблема в функции, в которой ваш singleObject определяется только в том случае, если длина массива. Это, вероятно, почему вы видите это определено в следующей функции

Но на вершине, что ваш цикл переписывает singleObject на каждой итерации, так что даже если ваши данные действительно существует, вы только когда-либо пройти последнюю итерацию singleObject к myNextFUnction.

Пожалуйста, покажите, где вы звоните createObjectFromArray() для получения дополнительной помощи