我有
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"]}
]
我很难获得我想要的输出。任何帮助将不胜感激。
答案 0 :(得分:1)
您希望首先浏览现有的每个项目,提取数据并将其合并到一个对象中。像这样:
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>
&#13;
答案 1 :(得分:0)
您可以使用地图功能来实现此目的
var res = [{"name": "id", "data": data.map(function (e) {return e.id;})},
{"name": "type", "data": data.map(function (e) {return e.type;})},
{"name": "year", "data": data.map(function (e) {return e.year;})}]
您可以查看更多内容 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
此致
丹