2013-04-09 72 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

相關問題