考虑这个定义对象:
var map = {
'Username':
{
'user-name': 'userName',
'first-name': 'fName',
'last-name': 'lName',
'active': 'isActive'
}
}
如何重新映射对象,例如:
data:
{
'user-name': SamN,
'first-name': Sam,
'last-name': Norbert,
'active': 1
}
得到这样的输出:
data:
{
'userName': SamN,
'fName': Sam,
'lName': Norbert,
'isActive': 1
}
答案 0 :(得分:5)
简单地遍历属性:
for(var prop in data) {
if(data.hasOwnProperty(prop) && prop in map.Username) {
data[map.Username[prop]] = data[prop];
delete data[prop];
}
}
这会就地更改对象。如果要创建新对象,只需在新的空对象上设置属性。
您也可以迭代map.Username
的属性。
答案 1 :(得分:0)
const map = {
'Username':
{
'user-name': 'userName',
'first-name': 'fName',
'last-name': 'lName',
'active': 'isActive'
}
}
const newObj = {};
const oldObj = { 'user-name': 'SamN', 'first-name': 'Sam', 'last-name': 'Norbert', 'active': 1 };
// Solution
Object.keys(oldObj).map((v, k) => {
newObj[map.Username[v]] = v
})
console.log(newObj) // {userName: "user-name", fName: "first-name", lName: "last-name", isActive: "active"}