我有

var data =

[
   {
      "id":"07907313",
      "type":"car",
      "year":"1999"
   },
   {
      "id":"0797096",
      "type":"boat",
      "year":"2013"
   },
   {
      "id":"2341353",
      "type":"plane",
      "year":"2015"
   }
]


我做

var jsonAsString = JSON.stringify(data);
var jsonData = JSON.parse(jsonAsString);


我想拉出每个唯一键(id,type,year)值,然后使用以下格式创建另一个var:

[
    {"name": "id", "data": ["07907313","0797096","2341353"]},
    {"name": "type", "data": ["car","boat","plane"]},
    {"name": "year", "data":["1999","2013","2015"]}
]


我一直在努力获得想要的输出。任何帮助将不胜感激。

最佳答案

您想从遍历现在拥有的每个项目开始,提取数据并将其合并为一个对象。像这样:



var data = [{
  "id": "07907313",
  "type": "car",
  "year": "1999"
}, {
  "id": "0797096",
  "type": "boat",
  "year": "2013"
}, {
  "id": "2341353",
  "type": "plane",
  "year": "2015"
}];

var results = {};

data.forEach(function(item) {
  Object.keys(item).forEach(function(key) {
    results[key] = results[key] || [];
    results[key].push(item[key]);
  });
});

document.getElementById('r').textContent = JSON.stringify(results);

<pre id="r"></pre>

10-02 15:46