将对象转换为对象数组

时间:2011-07-05 16:58:41

标签: c# javascript jquery arrays serialization

我从WCF调用返回了以下javascript对象,这已从字典对象序列化,删除了键/值属性

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

我想将此javascript转换为以下数组,结果为

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

我正在使用jquery客户端库。

任何人都知道如何将对象转换为具有键/值属性的对象数组?

4 个答案:

答案 0 :(得分:4)

这是一个可以解决问题的可重复使用的功能:

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

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

  for (var 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);

console.log(good)

答案 1 :(得分: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

答案 2 :(得分:0)

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

var array = [];

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

答案 3 :(得分:0)

使用Javascript,您可以获取对象的条目并映射键/值对。

var object = { 7: "XXX", 9: "YYY" },
    array = Object
        .entries(object)
        .map(([key, value]) => ({ [key]: value }));
        
console.log(array);