2016-01-12 2 views
2

У меня есть следующая функция, которая принимает в качестве аргумента объекта и использует его для манипулирования объектаObject.keys Foreach возвращает неопределенное

function manipulateData(obj){ 
    var data = Object.keys(obj).forEach(function(index){ 
     //Perform the manipulation 
     return obj; 
    } 

    return data; 
} 

Я призываю выше функцию в другой функции обратного вызова, следующим образом

converter.on('done', function(jsonArray){ 
    var newObj = manipulateData(jsonArray); 
}); 

После отладки я замечаю, что значение, возвращаемое из файла forEach, является «неопределенным», как я могу получить данные для возврата, как ожидалось?

+0

зависит от того, что вы ожидаете вернуть –

ответ

6

forEach ничего не возвращает. Если вы хотите создать новый Array, преобразовывая существующий, use map.

1

Может быть использовать .map(), так как это возвращает новый массив?

function manipulateData(obj){ 
    var data = Object.keys(obj).map(function(index){ 
     //Perform the manipulation 
     return obj; 
    } 

    return data; 
} 
Смежные вопросы