Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remapping object properties

Consider this definition object:

var map = {
  'Username':
  {
    'user-name': 'userName',
    'first-name': 'fName',
    'last-name': 'lName',
    'active': 'isActive'
  }
}

How can I remap an object, for instance, this:

data: 
{
   'user-name': SamN,
   'first-name': Sam,
   'last-name': Norbert,
   'active': 1
}

to get an output like this:

data:
{
   'userName': SamN,
   'fName': Sam,
   'lName': Norbert,
   'isActive': 1
}
like image 841
HyderA Avatar asked Sep 03 '25 04:09

HyderA


1 Answers

Simply iterate over the properties:

for(var prop in data) {
    if(data.hasOwnProperty(prop) && prop in map.Username) {
        data[map.Username[prop]] = data[prop];
        delete data[prop];
    }
}

This changes the object in-place. If you want to create a new object, just set the properties on a new empty object.

You can also iterate over the properties of map.Username instead.

like image 122
Felix Kling Avatar answered Sep 04 '25 23:09

Felix Kling