将对象转换为对象数组

3

我从一个WCF调用中得到了下面的JavaScript对象,这个对象已经被序列化成字典对象,其中移除了键/值属性。

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

我希望将此JavaScript转换为以下数组,结果如下:
[Object { Key=7, Value="XXX"}, Object { Key=9, Value="YYY"}]

我正在使用客户端库jquery。

有人知道我如何将对象转换为具有Key / Value属性的对象数组吗?

4个回答

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)


0
你可以这样做:
var output = [];

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

这里的result是你的WCF结果。记住,JavaScript对象本质上是映射,所以我可以用obj.Nameobj["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]}) }

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接