2015-01-30 2 views
-1

Я функцию в функцию, которая перебирает объекта данных и возвращения массива после , когда я пытаюсь утешить его войти его «не определено»Вложенные функция возвращает неопределенное

function xyz (arg){ 
    var arr = []; 
    function(){ 
     while(condition){ 
      arr.push(string); 
     } 
     return(arr); 
    } 
} 

console.log(xyz(arg)); 

//undefined 

Любая идея?

+0

извините за титул я имел трудности с ограничениями название –

+0

Можете ли вы дать подробную информацию о точно, что вы пытаетесь достичь, так как я 99% уверен, что событие, если это работало его это не лучший способ сделать это. –

+0

@RoryMcCrossan, вы ошибаетесь. Это 100% неправильный способ задать –

ответ

0

Вы получаете undefined, потому что ничего не возвращается из функции xyz. Вам нужно сохранить это значение.

Я предполагаю, что в месте условия и строки есть фактическое условие и строковая переменная. Так что-то вроде этого

function xyz (arg){ 
    var arr = []; 
    var x = function(){ 
       while(condition){ 
        arr.push(string); 
       } 
       return; 
      }; 
    y = x(); 
    return arr; 
} 
console.log(xyz("xyz")); 
+0

благодаря своему лучшему подходу, который стоит попробовать –

3

Первым из вас ничего не проходит. Есть на самом деле много Tings неправильных с кодом:

  • arg неиспользованный
  • condition является undefiend
  • string также не определено
  • return не является функцией, но ключевое слово
  • анонимный function(){} не исполняется

i can onl угадайте, что вы хотите сделать следующее:

function xyz (arg){ 
    var arr = []; 
    for(item in arg){ 
     arr.push(item); 
    } 
    return arg; 
} //this gets all the keys from an object and puts it into a list. 
+1

Не говоря уже о том, что вложенная внутренняя функция никогда не называется –

+0

, вы, вероятно, захотите 'return' вне' for .. .in' – Jamiec

+0

http://pastebin.com/bkNcV2ey Посмотрите –

Смежные вопросы