RRP
RRP

Reputation: 2853

Object.keys forEach returns undefined

I have the following function which takes in an object as an argument and uses it to manipulate the object

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

    return data;
}

I invoke the above function in another callback function, as following

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

Upon debugging i notice that the value returned from the forEach is "undefined", how can i get the data to be returned as expected?

Upvotes: 5

Views: 5323

Answers (2)

Todd Motto
Todd Motto

Reputation: 913

Maybe use .map() as this returns a new Array?

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

    return data;
}

Upvotes: 1

ShadowRanger
ShadowRanger

Reputation: 155323

forEach doesn't return anything. If you want to make a new Array by transforming the existing one, use map.

Upvotes: 7

Related Questions