I have a dictionary of arrays as follow:
var usersTemp = {11: [ {"active": true, "email": "seconduser@example.com", "userid": 2, } ],
12: [ {"active": true, "email": "firstuser@example.com", "userid": 1, },
{"active": true, "email": "seconduser@example.com", "userid": 2, } ], }
I need to merge the elements that have the same email address or userid and get something similar to this:
{ 1: {"active": true, "email": "firstuser@example.com", "roles": [12]} ,
2: {"active": true, "email": "seconduser@example.com", "roles": [11 , 12]}, }
This is my try:
var mergedUsersTemp = {};
for (var role in usersTemp) {
for (var user in usersTemp[role]) {
if(!mergedUsersTemp[user]){
const i = JSON.parse(JSON.stringify(usersTemp[role][user]));
console.log(JSON.stringify(i))
mergedUsersTemp[user] = {"active": i["active"], "email": i["email"], "id": i["id"], "roles": []};
mergedUsersTemp[user]["roles"] = [];
}
mergedUsersTemp[user]["roles"].push(role);
}
}
But the problem is deep copy in javascript and it's returning the same value for the user info. How can I fix it?