将数据格式从单个对象转换为键值对数组的对象

4

我有一份数据,以json格式存储在单个对象中:

var a = {
    "1": "alpha",
    "2": "beta",
    "3": "ceta"
}

我想把它转换成以下格式:
var b = [
    {id: 1, label: "alpha"},
    {id: 2, label: "beta"},
    {id: 3, label: "ceta"}
];

有人能提供一种方法来完成这个任务吗?
3个回答

5
你可以尝试以下方法:

var a = {
  "1": "alpha",
  "2": "beta",
  "3": "ceta"
}

var b = [];

for (var key in a) {
  if (a.hasOwnProperty(key)) {
    b.push({
      "id": key,
      "label": a[key]
    });
  }
}

console.dir(b);

请注意 - 你需要更新对象a - 逗号缺失。

5

这个提案涉及到 Object.keys()Array#map()

var a = { "1": "alpha", "2": "beta", "3": "ceta" },
    b = Object.keys(a).map(function (k) {
        return { id: k, label: a[k] };
    });

document.write('<pre>' + JSON.stringify(b, 0, 4) + '</pre>');


1
我本来想做这个,但后来写了完全不同的东西:D。谢谢指出。 - thefourtheye
1
@Nina - 很好的回答! - Nikhil Aggarwal

4

尝试

var b = [];

for ( var key in a )
{
   b.push( { id : key, label :a[key] } );
}
console.log(b);

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