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?
 
     
    