2011-07-05 159 views
2

我已經被從WCF調用返回下面的JavaScript對象對象的數組,這已經從字典對象,刪除序列化的鍵/值的屬性轉換對象

Object { 7="XXX", 9="YYY" } 

我想轉換此javascript到以下數組中,結果爲

[Object { Key=7, Value="XXX"}, Object { Key=9, Value="YYY"}] 

我正在使用jquery客戶端庫。

任何人都知道如何將對象轉換爲具有鍵/值屬性的對象數組?

回答

4

下面是會解決一個可重複使用的功能你的問題:

// Object { 7="XXX", 9="YYY" } 
var bad = { 
    7 : "XXX", 
    9 : "YYY" 
}; 

function fix(input) 
{ 
    var output = [], index; 

    for(index in input) { 
     output.push({ 
      "KEY" : index, 
      "VALUE" : input[index] 
     }); 
    } 

    return output; 
} 

// [Object { Key=7, Value="XXX"}, Object { Key=9, Value="YYY"}] 
var good = fix(bad); 
0

你可以這樣做:

var output = []; 

for (var key in result) { 
    output.push({ Key: key, Value: result[key] }); 
} 

哪裏result是你的WCF結果。請記住,JavaScript對象基本上對應,因此,在那裏我可以做obj.Name,我還可以做obj["Name"],我可以枚舉成員在地圖上,如:for (var prop in obj) { // Stuff

0
a = { "7": "XXX", "9": "YYY" } 

var array = []; 

for(var key in a){ array.push({key: key, value: a[key]}) }