重新映射对象属性

Hyd*_*erA 3 javascript object

考虑这个定义对象:

var map = {
  'Username':
  {
    'user-name': 'userName',
    'first-name': 'fName',
    'last-name': 'lName',
    'active': 'isActive'
  }
}
Run Code Online (Sandbox Code Playgroud)

如何重新映射对象,例如:

data: 
{
   'user-name': SamN,
   'first-name': Sam,
   'last-name': Norbert,
   'active': 1
}
Run Code Online (Sandbox Code Playgroud)

获得这样的输出:

data:
{
   'userName': SamN,
   'fName': Sam,
   'lName': Norbert,
   'isActive': 1
}
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 5

只需迭代属性:

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

这会就地更改对象.如果要创建新对象,只需在新的空对象上设置属性即可.

您也可以迭代map.Username替换属性.