1
\$\begingroup\$

I have data returned from an API coming back in a response: response.data

[
 {"amount":"45342",
 "comment":"random text",
 "currency":"USD"},
 {"city":"LA",
 "amount":"54366",
 "lane_id":{"$oid":"5645999965a5b0"}}
]

I need to take only the amount and create a new set of objects like this: [{amount: "45342"}, {amount: "54366"}]

The obvious way would be to push it through a loop like so:

var newArray = [];
var newObject;
var i, len;
for (len = response.data.length, i=0; i<len; ++i){
 newObject = response.data[i];
 newArray.push({amount: newObject.amount});
};

Is there a better way? I am running on angular 1.5 and jquery

asked Feb 11, 2017 at 0:07
\$\endgroup\$
1
  • 1
    \$\begingroup\$ You can use array.map \$\endgroup\$ Commented Feb 11, 2017 at 0:08

1 Answer 1

1
\$\begingroup\$

you can use the map function provided for all arrays. You would need to make sure that response.data always returns an array, even in the case where nothing was returned from the api otherwise you can get an error.

var newArray = response.data.map(function(data) { 
 return {amount: data.amount}
});

would get you what you are looking for.

answered Feb 11, 2017 at 0:11
\$\endgroup\$

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.