I need convert arrays inside my parent array to objects to match my database model data.
I have array like this:
emails: Array[2]
0: "[email protected]"
1: "[email protected]"
id: 1
firstname: "Jane"
lastname: "Doe
What I want to achieve is to convert emails array to array of objects like this:
emails: Array[2]
0:
{
name: "[email protected]"
}
1:
{
name: "[email protected]"
}
id: 1
firstname: "Jane"
lastname: "Doe
I tried to use this code to convert array to object but for some reason it fails (no data are displayed -> variable rv is empty):
var rv = {};
for (var i = 0; i < dbInfo.emails.length; ++i)
if (dbInfo.emails[i] !== undefined) rv[i] = dbInfo.emails[i];
Does someone knows why my code fails and does someone knows solution for this type of problem?
Thanks advance.
This is a perfect use for the Array.prototype.map
function:
dbInfo.emails = dbInfo.emails.map(function(e) {
return { name: e };
});
i.e. just convert each individual element of the array (e
) into an object { name: email }
I think what are you looking for was angular.extend. For a good article about angular.extend click here. For documentation click here .
var newObj = {};
angular.extend(newObj,[Array here]);
You are putting the emails into an object. Instead, you want to wrap each email in its own object, and put it back in the array.
for (var i = 0; i < dbInfo.emails.length; ++i) {
if(dbInfo.emails[i] !== undefined) {
dbInfo.emails[i] = { name: dbInfo.emails[i] };
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With