2013-04-09 70 views
2

比方说我们有2个JavaScript对象和数组:如何更改JavaScript对象的字段名称?

var rawData = { 
    "dModel": "Deluxe", 
    "sizeMB": 256, 
}; 

var displayNames = { 
    "dModel": "Device Model", 
    "sizeMB": "Size(MB)" 
}; 

var fieldNames = ["dModel", "sizeMB"]; 

我想改变根据displayNames指示的映射RAWDATA字段名称,最后的结果应该是:

var data = { 
    "Device Model": "Deluxe", 
    "Size(MB)": 256, 
}; 

谢谢!

回答

1

迭代rawData建立新的data对象,并使用displayNames作为查找表为新的属性名称:

var data = {}; 
for (var p in rawData) 
    data[displayNames[p]] = rawData[p]; 
+2

你正在创建一个全局变量'p'。 – Bart 2013-04-09 18:34:21

+0

@Bart:谢谢,修复它。 – Bergi 2013-04-09 18:41:08

+0

得到它!谢谢! – CGP 2013-04-09 23:36:06

0
for (var oldKey in displayNames) 
{ 
    var newKey = displayNames[oldKey]; 
    rawData[newKey] = rawData[oldKey]; 
    delete rawData[oldKey]; 
} 
+0

这只有在displayNames不包含已经在rawData中的密钥时才有效。虽然OP要求更改rawData的字段名,但创建新对象更安全。 – Bart 2013-04-09 18:35:58

相关问题